Joffrey Lupul scores go-ahead goal with 3:10 left, helping Maple Leafs beat Hurricanes 6-3

No matter how hard the Carolina Hurricanes pushed, the Toronto Maple Leafs found a way to hold them back.

Joffrey Lupul scored the go-ahead goal with 3:10 remaining, helping the Maple Leafs hold off a fierce comeback and beat the Hurricanes 6-3 on Thursday night.

Lupul raced past Joe Corvo and beat Justin Peters for his seventh goal this season, shifting the puck from his backhand before tucking the puck into the net. All of Lupul's goals have come in five games since his return from a broken forearm.

"We were confident we were going to win the game the whole time," said Lupul. "That's the sign of our team really maturing. We get in these tight games, last year we probably wouldn't have won that game and this year we did."

Jay McClement sealed it with his sixth of the season on an empty-netter with 45 seconds to go before Nikolai Kulemin added his sixth with 3 seconds left — also into an empty net.

"Not a lot of things were going right for us for a little while there in the hockey game," said Toronto coach Randy Carlyle. "But they reached back and found a way and that's what it's about."

Tyler Bozak, Cody Franson and Dion Phaneuf also scored for Toronto. Phil Kessel had two assists for the Leafs, adding to his recent hot streak at the Air Canada Centre, where he has four goals and 10 assists in his last nine games.

Toronto outshot Carolina 36-22.

"We got a couple of ugly ones and a couple of pretty ones," said Toronto goalie James Reimer, making his sixth start in the last seven games.

Eric Staal, Jordan Staal and Alexander Semin scored for the Hurricanes, who rallied from a 2-0 hole for a 3-2 lead early in the third before extending their winless streak to seven games.

Jordan Staal's goal at 6:55 of the third made it 3-2 after two Leafs crashed into each other in the defensive end. Staal cruised past both and roofed the puck for his eighth of the season. Tuomo Ruutu got the assist for his 300th NHL point.

"I think tonight was honestly one of our best nights of just working hard and working through it and trying to find a way to win the game," said Jordan Staal. "Obviously we didn't come up with the result but there's still, I guess you could say some good things, but obviously we've still got to be better if we want to make a push for the playoffs."

Kessel, who was flying up and down the ice all night, hit the crossbar seconds later. Lupul had a gilt-edged chance on the power play later in the period but was unable to stuff the puck in from the edge of the crease.

Phaneuf tied it up at 3 with 5:25 left with a shot from the point for his seventh of the season after Carolina had survived a frenetic power play that saw Lupul and Bozak unable to stuff the puck in from close range.

"Tonight I thought we had a lot of good things and I thought we deserved a better result."

Peters was by far the busier goalie in the first period and looked sharp. Toronto outshot the visitors 13-7, with Kessel producing five of those for the Leafs. One of his got past Peters, flipping over his shoulder, and was slowly trickling toward the goal-line before it was cleared away by alert defenseman Joni Pitkanen.

Bozak opened the scoring at 3:58 with his 10th of the season, tapping his stick on the ice to get Kessel's attention at the side of the goal after some fierce forechecking pinned the Hurricanes in their own end. Kessel saw Bozak and sent a seeing-eye pass through the crease that eluded two Carolina defenders before the Leafs center tapped it in.

Seconds later, Toronto's Frazer McLaren and Kevin Westgarth were fighting at center ice with the Hurricanes forward getting the better of the tussle. McLaren, who officially spent one second on the ice before the fight, had to head to the dressing room for medical attention. His cheek, badly cut by a slash in a March 6 win over Ottawa, had again split open.

Westgarth emerged from the box to Carolina sticks banging on the boards. McLaren was back on the ice later in the period.

NOTES: Leafs D Jake Gardiner was a healthy scratch, giving way to John-Michael Liles, who was returning from an ankle injury ... The game was the first of a three-stop Canadian road trip for the Hurricanes, who play in Winnipeg on Saturday and Montreal on Monday. ... The Leafs came into the game leading the league in fighting majors with 33, while the Hurricanes had only 10. ... Carolina D Jay Harrison was hit with a boarding penalty late for sending Nazem Kadri into the end boards.