TORONTO -- The Maple Leafs' long journey home didn't come with the result they wanted.
Jeff Skinner also scored for the Hurricanes, who snapped a three-game losing streak.
The Maple Leafs (13-18-4) worked hard under tough circumstances after being stuck on a bus in a winter storm Sunday following a victory in New Jersey. The team didn't arrive in Toronto until Tuesday morning.
What was supposed to be a day trip to New Jersey ended up including five hours on a bus Sunday night and five more on the runway Monday. Although they wouldn't admit it, the delays couldn't have helped.
"We looked sharp all game, the guys skated well," said Toronto's Jonas Gustavsson, who made 23 saves in the loss. "[The Hurricanes] looked more tired then we looked most of the time."
Dwyer's goal with 5:11 remaining came off a scramble in front of Gustavsson.
The game began fast and furious with five goals scored in the final 13 minutes. Staal scored twice in the spurt.
"[Staal] in the first period really took it upon himself to make some dominating plays, and he's a guy who's capable of doing that," said Carolina's Cam Ward, who stopped 34 shots.
Kessel also scored twice in the first.
"Kessel had a little bit of jump in his step," Ward said. "When he got that first goal you could tell he was starting to feel a little confidence."
After Skinner made it 1-0 at 7:34, Kessel answered less than five minutes later with a one-timer from the left circle during a 5-on-3 power play.
Staal's first came off a giveaway by John Mitchell in the Hurricanes zone. The Carolina captain stripped the puck from Mitchell and streaked down the wing before cutting in front to beat Gustavsson at 14:08.
Kessel tied it 2-2 with his second of the night 1:22 later. Tyler Bozak stole the puck from defenseman Jay Harrison in the corner. Joey Crabb shoveled it to Kessel for a backhander from the high slot.
Stall added his second goal with 10 seconds left in the period when Sergei Samsonov made some shifty moves before passing to Staal for a one-timer.
Grabovski made it 3-3 on a power play at 8:17 of the second. A tipped point shot fell to Grabovski, who beat Ward.
That was all the Maple Leafs could manage in the second, despite thoroughly outplaying the Hurricanes.
"We were unlucky on a couple of bounces," Gustavsson said. "If we had a lead after two, then maybe we would have won the game. But that's the way it is. We did a good job, and if we play like this then we'll win a lot of games."
After being outshot 25-15 through two periods by Toronto, the third was all Carolina with the tough travel seemingly catching up to the Leafs.
"We had a great second period where we absolutely dominated," Toronto coach Ron Wilson said. "I think we outchanced them 13-1."
Toronto finished 2 for 8 on the power play. Carolina was 1 for 3.
The game ended with some controversy after Grabovski was sent flying after what appeared to be a slew foot in the Carolina end.
Toronto D Tomas Kaberle added to his team-leading point total against Carolina. He has 29 points in 40 games. ... Crabb's assist on Kessel's second goal was his first point with the Maple Leafs.