Auston Matthews, making his pre-season debut, scored twice for the Leafs. Nick Shore also scored while Michael Hutchinson gave up three goals on 20 shots through two periods, before Brandon Halberson allowed two goals on seven shots.
Matthews made it a one-goal game at the seven-minute mark of the third as he won a battle in the slot and batted a puck out of mid-air and past Gustavsson.
The Senators appeared to ice the game when Tkachuk put the puck into Toronto’s empty net, but once again the Leafs were able to make it a one-goal game as Shore beat Gustavsson with 44 seconds remaining in regulation.
Trailing 2-0, the Leafs cut the lead in half early in the second period on a delayed penalty call as Matthews played give-and-go with Morgan Rielly before beating Anderson.
Ottawa regained its two-goal lead less than two minutes later as Ennis picked up the puck in the slot and rifled a shot past Hutchinson.
The Senators got off to a good start taking a 2-0 first period lead with goals by Veronneau and Borowiecki.
Veronneau opened the scoring midway through the first with a power-play goal, while Brown tipped a Borowiecki shot from the blue-line.
Thomas Chabot was a late scratch for the Senators as he wasn’t feeling well after the warm-up and was replaced by Hubert Labrie.
Both teams are back in action Saturday night as the Senators host the Montreal Canadiens, while the Leafs will host the Buffalo Sabres.