TORONTO -- Mike Ribeiro made up for three missed scoring chances.
"I was 1-for-4 on scoring chances," Ribeiro said. "It's about time I finally scored. ... We showed some character tonight, we lost the lead twice in the game and came back. And (captain) Saku (Koivu) really showed why he's a leader."
Ribeiro, standing alone beside the net, tapped in a cross-ice pass from defenseman Andrei Markov for the winner.
"It was an exciting game," Montreal coach Claude Julien said. "We had a lot of mental errors, we looked tired at times. But we found a way to come back and score some big goals. That showed character and determination."
"It's something to build on," Koivu said. "We have a young team and a lot of rookies. For us to win games late is really something for our confidence. We're not quitting. We're not playing our best but we're finding a way."
Sheldon Souray, Alexander Perezhogin and Niklas Sundstrom also scored for the Canadiens in only their third victory at Air Canada Centre. Koivu and Alexei Kovalev added two assists apiece for Montreal, which last opened with three wins in 1978-79.
"Our defensive zone coverage cost us the other night (against Ottawa) and it cost us tonight," Maple Leafs coach Pat Quinn said. "It's an area that clearly we're not handling very well right now. We were losing battles for loose pucks, we weren't strong in our end."
The Canadiens gave up a 3-2 lead in the third period on goals by Matt Stajan and Nik Antropov and were staring at their first defeat of the season before Begin and Ribeiro scored 2:29 apart to take two points from the Maple Leafs.
- Koivu played in his 500th career game.
- The Canadiens outshot Toronto 25-20.
- Montreal was 2-for-4 on the power play, while Toronto was 1-for-6.