The 32-year-old Michalak converted the first four tries and added two penalties on his way to becoming his country's all-time World Cup scorer with 136 points. He made his World Cup debut in 2003.
Michalak went off near the end and was replaced by Morgan Parra, a mainstay from the 2011 squad, who then helped to set up winger Remy Grosso for a try on his test debut as Canada played the last 10 minutes with 14 players after Nanyak Dala was sin-binned.
France coach Philippe Saint-Andre will be pleased with a fifth straight win, but will be seeking answers as to why his team switched off in the first half.
The French appeared to be in complete control at 17-0 after tries from center Wesley Fofana and hooker Guilhem Guirado, but Canada rallied with two quick tries.
Left winger DTH Van Der Merwe crossed out wide and hooker Aaron Carpenter bulldozed over the creaking French line on the right.
That stirred France back into action.
The French won a penalty at the end of the half, but Michalak chose an attacking lineout instead of a shot at goal. The move paid off, the French rolling maul proved too good and prop Rabah Slimani ducked in to pad out the lead to 24-12.
Correction - An earlier version of this story stated France had qualified for the quarter-finals when in fact they still have a chance of missing out.
-AP
France 41 (Wesley Fofana, Guilhem Guirado, Rabah Slimani, Pascal Pape, Remy Grosso tries; Frederic Michalak 4 conversions, 2 penalties, Morgan Parra conversion), Canada 18 (DTH Van Der Merwe, Aaron Carpenter tries; Nathan Hirayama conversion, 2 penalties). HT: 24-12
Commentary
Match stats
Chalkboard
Action areas