Canada went up 3-0 at 13:02, when Brayden Point scored on a rebound of Travis Sanheim's shot off the rush with McDavid.
MacKinnon extended the lead to 4-0 at 5:03 of the second, scoring with a one-timer off a pass from Crosby, who was below the goal line.
Saros relieved Lankinen during the stoppage after the goal.
"Afterwards, it's easy to say that maybe make the move before that, but it was like that, and Juuse was really good," Finland coach Antti Pennanen said.
Finland avoided the shutout when Esa Lindell scored with a far side shot from the right circle at 13:19 of the third period to make it 4-1.
Granlund scored a 6-on-5 goal to make it 4-2 at 18:20, with a one-timer from the left hash marks. He scored again in a 6-on-5 situation from a similar spot to make it 4-3 at 18:43.
Pennanen had one thought on the bench at the time.
"We're coming back," Finland's coach said. "I believed strongly that we [could] come back because [Canada felt] the pressure."
Crosby's goal at 19:04 made it 5-3.
"It kind of got a little scrambly," Binnington said. "But Sid burying that goal in that game management moment, that's a player."
Canada's regulation win also eliminated Sweden before it plays the U.S. in the last game of the round-robin portion of the tournament Monday (8 p.m. ET; MAX, truTV, TNT, SN, TVAS).
But all eyes are now on Thursday night; Canada and the United States, the rematch for the championship.
"Who's favored, who's not, we come in here to win this," Cooper said. "I'm really looking forward to the game. This is why we came here."
NOTES: Canada advanced to the final of an NHL-hosted international tournament for the ninth time in nine tries, and will seek its seventh championship. It has won the Canada Cup four times and was runner-up once, and won the World Cup of Hockey twice and was runner-up once. ... Cale Makar returned to Canada's lineup and had four blocked shots playing a team-high 23:57. The defenseman did not play against the U.S. on Saturday because of an illness. He replaced Thomas Harley in the lineup. … Forward Travis Konecny played for Canada, replacing Seth Jarvis, who played in the first two games. Konecny had two shots on goal in 12:11 of ice time. … Joel Armia returned to Finland's lineup after being scratched against Sweden on Saturday. The forward, who replaced Teuvo Teravainen, played 11:20.