Just as the Maple Leafs had killed off a penalty, Fabian Zetterlund’s shot from the left face-off dot led to a rebound that Halliday jammed in at the side of the net to give Ottawa a 3-2 lead.
Thomas Chabot had a goal and an assist in his first game as Ottawa captain, and Linus Ullmark made 27 saves for the Senators, who were the final NHL team to play their opener.
Auston Matthews and Kirill Marchenko scored, and Sergei Bobrovsky made 26 saves for the Maple Leafs (1-2-0), who have had each of their first three games decided by one goal.
Chabot put the Senators up 1-0 at 18:52 of the first period when he put in a rebound at the side of the net after Shane Pinto’s shot was deflected by Claude Giroux in the slot.
The Maple Leafs tied it 1-1 at 33 seconds of the second period when Matthews deflected Morgan Rielly’s shot from the blue line in the slot.
Marchenko scored his first goal with the Maple Leafs to put them up 2-1 on the power play at 7:06 of the second period. Darren Raddysh sent a pass from the point to Marchenko at the right side of the net, where he then went to his backhand, stepped toward the slot and shot past Ullmark’s blocker.
Michael Amadio tied it 2-2 at 12:40. Tim Stutzle lifted a pass over a sprawling Rielly on a 2-on-1 to Amadio, who redirected it past Bobrovsky at the side of the net.
Ullmark kept it tied at 13:32, stopping William Nylander with a stretching right toe save after he stepped around Dylan Cozens at the top of the right circle and deked past Jordan Spence in the slot.
Senators defenseman Jake Sanderson left the game at 12:45 of the first period and did not return. He missed part of training camp with an undisclosed injury.