Ondrej Celustka scored in the third minute with a header that beat goalkeeper Lars Hirschfeld. Tomas Horava added an insurance goal late in the second half.
Canada is 0-10-3 over the streak and hasn't scored in nine games. Canada is ranked No. 111 in the latest FIFA rankings, well behind the Czechs at No. 27.
Forward Simeon Jackson left the friendly midway through the first half due to injury. He was replaced by Kyle Porter.
Canada was coming off a 3-0 loss to 57th-ranked Australia earlier this month in London. Prior to that friendly, the Canadians played a pair of games against Mauritania, resulting in a scoreless draw and a 1-0 loss.
Canada plays No. 30 Slovenia in Celje on Tuesday to wrap up Benito Floro's third camp since he took over as head coach in August.
Floro has been tasked with turning around the Canadian team ahead of qualifying for the 2018 World Cup. He plans to insert some of his younger players into the lineup against Slovenia.
The Czechs missed out on World Cup qualifying, finishing third in their group behind Italy and Denmark with a 4-3-3 record.
Slovenia (5-5-0) also failed to qualify, placing third in its pool behind Switzerland and Iceland.