Kadri, who scored Toronto's second power-play goal late in the first, tied it at 3 with an unassisted goal 14:10 into the third after the Maple Leafs allowed three straight goals to blow a 2-0 lead.
He drew an assist when Kessel put Toronto ahead to stay with his fifth goal at 18:10. Nikolai Kulemin also scored his fifth goal in the first and Jean-Sebastien Giguere stopped 22 shots for the Maple Leafs, who improved to 4-3-1.
Pascal Leclaire made 15 saves for Ottawa, which fell to 2-4.
The chippy encounter between the provincial rivals included a fight between Ottawa's Alex Kovalev and Maple Leafs defenseman Francois Beauchemin midway through the second.
Kulemin put a backhand past Leclaire to open the scoring 8:08 in. Kadri made it 2-0 with Toronto's second power-play goal of the period at 19:23.
Michalek drew the Senators within one midway through the middle period, snapping a shot past Giguere from a sharp angle, low in the right faceoff circle.
Alfredsson gave Ottawa its first lead 1:06 into the third when he took Campoli's centering pass from behind the net and snapped a shot past Giguere.