"I think we maybe got a bit lackadaisical at the start of the second period for about 10 minutes and they really gave it to us," Thornton said.
"The 10-minute mark, it kind of switched. We had a timeout and we kind of flipped it back on them," he said.
The Sharks had a two-man advantage for 76 seconds when Jay McClement and Mason Raymond were penalized 33 seconds apart. And Joe Pavelski found Thornton with plenty of room at the side of the net, and San Jose's captain made it 2-0 at 14:31.
"Discipline's a huge part," Raymond said. "You're killing penalties, you're not playing offense and you're playing in your own zone, so we're kind of shooting ourselves in the foot there."
Sharks goalie Antti Niemi made 28 saves.
The Leafs, meanwhile, had three shots in the first 1:31, then went 17:17 without one.
With Dan Boyle in the penalty box for interference, Raymond scored off the rush 2:44 into the second.
There was nothing Niemi could do on Kessel's power-play goal 9:47 into the second. Center Tyler Bozak -- who missed the bulk of the period to that point -- got Kessel the puck with a wide-open net.
Kessel didn't miss, hammering home his 15th goal of the season and 200th of his NHL career to make it 2-2. The crowd of 19,360 gave Kessel a standing ovation.
Defenseman Morgan Rielly couldn't clear the puck and Stuart skated to the net and appeared to bank the puck in off Pavelski. But it was changed to Stuart's goal, his third of the season.
"They're tired and they're fourth line so, no disrespect, but you can maybe try things that you ordinarily wouldn't do," Stuart said. "I think we had a lot of good looks on that shift. We were able to get a good bounce and capitalize on it."
The Leafs had some chances in the third, but they never managed to put enough pressure on the Sharks.
Couture sealed it with an empty-netter.
The Leafs held a pregame moment of silence for Toronto police constable John Zivcic, who died in a car accident Saturday. ... Cody Franson missed his second successive game with a lower-body injury. Toronto coach Randy Carlyle had called him a gametime decision, but the defenseman did not take part in warmups. ... Maple Leafs C Nazem Kadri missed the game because of a death in the family. ... Bozak left the game with what Carlyle called an upper-body injury.