TORONTO -- Phil Kessel left most of his talking on the ice, but saved a little more for the dressing room.
He was his usual subdued self in a rare postgame scrum following a four-point night.
"It was a big win for us, obviously, and the fans were good and we found a way," said Kessel, who last had four points at Edmonton on Oct. 29. "I've had chances in a couple games before. They went in tonight."
With 5:59 left, Tyler Bozak fed a pass to Kessel, who scored his 30th goal of the season to complete his hat trick and give Toronto a 4-3 lead.
As for celebrating his second hat trick of the season, Kessel said his plans were to "go home and hang out."
Bozak, who shares an apartment in Toronto with Kessel, was shocked to see the forward talking to reporters.
"It's pretty funny, surprised he talked to you guys. Must've had a good night, I guess," Bozak said. "He's always played well since he's been here. He's always put up points and done great things for our team, but I've been starting to get some points now with him, and that's been fun."
Kessel is second in the NHL in goals this season. Toronto's (30-21-6) streak is its longest since the Maple Leafs concluded the 2006-07 season with 10 straight home victories. They have won five straight over Ottawa.
Kessel's first hat trick of the season came Oct. 22 against the Anaheim Ducks.
"His skating always stands out," forward Joffrey Lupul said. "But you know when he's really playing well because of how he's competing on pucks down low in the offensive end, turning his back, protecting the puck. He's been doing that for a while."
Bozak stretched the lead to two goals with 1:33 remaining, one-timing a pass from Kessel past Craig Anderson for his 11th goal. Nazem Kadri added an empty-netter with 28 seconds to go. Lupul also scored for Toronto.
Kessel gave Toronto its first lead at 7:34 of the third period on a power play. He beat Anderson to the top corner with a wrist shot from the top of the circle.
Cody Franson earned his 100th career assist on the goal.
"I think with Phil, he's been classified as this one type of player, and we think that he's got more of an all-around ability too," Maple Leafs coach Randy Carlyle said. "He can distribute the puck, he can pass the puck and he can find people. He can do a lot more things than just shoot."
Neil tied it 3-3 at 9:06 jamming in a loose puck. The goal was reviewed before it was determined the puck inched over the line for Neil's eighth of the season.
Anderson made 32 saves. Jonathan Bernier stopped 23 shots in the win.
Ottawa had a 2-0 lead midway through the second period and had an excellent chance to extend it near the 11 minute mark as Erik Karlsson beat Bernier with a shot glove-side, but hit the post.
"I felt we played hard," said Neil, who scored for the first time in 13 games. "We gave up some chances in the second, but I thought we settled it down there in the third and got back after them.
"I don't think it's a 6-3 hockey game, that's for sure. It was pretty close back and forth."
Toronto cut Ottawa's lead in half two minutes later as Kessel put in James van Riemsdyk's feed.
The Leafs completed the comeback at 14:39 of the middle frame. Kadri hit Senators defenseman Cody Ceci from behind, and then centered the loose puck to Lupul for his 17th goal. Despite Ottawa's protest, no penalty was called.
Ottawa took a 2-0 lead 6:46 into the second when Greening finished a 2-on-1 feed from Neil for his fifth goal.
Toronto had back-to-back, first-period power plays courtesy of consecutive Cory Conacher penalties. The Maple Leafs mustered just two shots.
Neil opened the scoring at 19:07 of the first, using Leafs defenseman Morgan Rielly as a screen and beating Bernier glove-side for his seventh of the season and first in 12 games.
Leafs forward Carter Ashton sat out because of a hand injury. ... Peter Holland missed his first game with what Carlyle called a lace bite. ... Toronto's Frazer McLaren, who missed eight games with a shoulder injury, returned to the lineup for the first time since Jan. 14. ... Conacher played in his 100th NHL game. ... Ottawa D Chris Phillips missed his third straight game with a lower body injury. ... Referee Paul Devorski became the fifth official to work 1,500 NHL games.