Marc-Edouard Vlasic (San Jose Sharks) scored 2:22 into the third period and Team Canada survived a scare from tournament co-host France to pick up a 3-2 victory at AccorHotels Arena in Paris on Thursday.
After a week of preliminary play, Canada is the top club in Group B with a perfect 4-0-0-0 record. It is the only squad to have won every one of its games in regulation. France dropped to 1-1-0-2 and sixth in the pool.
Canada forward Nathan MacKinnon had an assist on the game-opening goal by Ryan O'Reilly (Buffalo Sabres) at 5:19 of opening stanza before the French tallied consecutive markers midway through the first frame and early in the second to take the lead.
The Canadians outshot France 25-12 through two periods of play, but the score was only 2-2 with Canada captain Claude Giroux of the Philadelphia Flyers burying the tying goal 49 seconds before the intermission.
The world's No. 1-ranked team came out strong from the second break. Vlasic tallied an unassisted score before Canada was forced to kill two French power plays, including one for five minutes after Jeff Skinner (Carolina Hurricanes) was given a game misconduct for spearing.
MacKinnon began the night on a line with Giroux and Skinner. He is second in the tournament in scoring with eight points (five goals and three assists).
Avs forward Matt Duchene was on a combo with O'Reilly and Mark Scheifele of the Winnipeg Jets. Goaltender Calvin Pickard did not play for Canada as he instead backed up starter Chad Johnson, who made 22 saves.
Thursday marked the first game for the Canadians without defenseman Tyson Barrie, who will miss the remainder of the tournament with a lower-body injury. Entering the day, Barrie was tied for the team lead and was second overall in the tournament with seven points (two goals and five assists) in three contests.
Canada's fifth game of the preliminary round is Saturday against Switzerland.
SWEDEN (2) VS. LATVIA (0)
Gabriel Landeskog scored early in the first period and Team Sweden held on for a 2-0 win, delivering Latvia its first loss of the 2017 IIHF World Championship on Thursday at LANXESS Arena in Cologne, Germany.
Latvia entered the matchup 3-0-0-0, but the squad was facing its toughest opponent yet in the world's No. 6-ranked Swedes, who were struggling to find consistency after going 1-0-1-1 in their first four games.
Landeskog gave Sweden the only lead it would need midway through the first period with his second goal of the tournament. From the right corner, Landeskog drove to the net and found just enough space short side to sneak the puck past goaltender Elvis Merzlikins.
The Colorado Avalanche captain finished with a plus-2 rating as he was also on the ice for Elias Lindholm's tally with 3:18 left in the third period. Overall, Landeskog played 16:26 while on the top line with the Carolina Hurricanes' Victor Rask and Lindholm.
Fellow Colorado forward Carl Soderberg played 13:55 for Sweden while being paired at even strength with Marcus Kruger (Chicago Blackhawks) and Linus Omark.
After generating only eight shots in the first 40 minutes of regulation, Latvia produced 11 in a solid final frame but still couldn't end the shutout bid of Team Sweden netminder Eddie Lack (Carolina).
The Latvians are now in the meat of their preliminary schedule as they will face the United States on Saturday before closing pool play against Russia and co-host Germany.
Next up for Sweden is a date with Italy on Friday.
RUSSIA (3) VS. DENMARK (0)
Team Russia remained undefeated and atop the Group A standings with a shutout victory over Denmark on Thursday. A trio of goals in a matter of 1:10 late in the second period was all the Russians (3-1-0-0) needed in a 3-0 win at LANXESS Arena in Cologne, Germany.
In a closely-contested matchup with the Danes (0-1-0-3), the dangerous Russian offense had no answer early on for beating opposing goaltender George Sorensen, who finished the outing with 30 saves.
That was until Bogdan Kiselevich finally broke through with 4:24 remaining in the middle frame. Sergei Plotnikov added another tally 18 seconds later and Nikita Gusev closed the scoring at 16:46 of the period.
Avalanche prospect Andrei Mironov played 15:03 on Russia's third defensive pairing with Ivan Provorov (Philadelphia Flyers).
Russia will now set its sights on a Saturday outing against Slovakia.