Horcoff banged in a rebound of defenseman Janne Niinimaa's slap shot to give the Oilers a two-goal lead. Defenseman Robert Svehla answered for Toronto with just over six minutes left, and Edmonton survived a frantic finish to start a crucial five-game road trip on a winning note.
But it was not easy as the Oilers nearly squandered a 3-0 lead. The teams combined for five goals in the third period as the Maple Leafs twice pulled within one.
"We have a 3-0 lead and they scored late in the game to get a little momentum going," said Edmonton goaltender Tommy Salo, who made 30 saves. "At the same time, we scored big goals when we needed to, and I think that was the key in the game."
"It was like a ping-pong game, back and forth," Oilers center Todd Marchant added. "It seemed like we could only stay one goal up on them. In the end, we got the two points and that's exactly the way we wanted to start this road trip."
It may have been a costly win as defenseman Jason Smith suffered a shoulder injury in the first period and will return to Edmonton for further evaluation. Left wing Ryan Smyth went down with an apparent head injury in the second period following a hard check by Svehla and also did not return.
"Jason's a leader back there on the defensive side of the puck and we definitely need those guys, that's for sure," Oilers winger Anson Carter said. "The fact that these guys didn't finish the game, it's something serious, for sure."
The loss snapped a season-high five-game winning streak for Toronto, which may have lost the contest in the first period, when it was 0-for-5 on the power play and surrendered a shorthanded goal.
"That was a bad game," Maple Leafs captain Mats Sundin said. "We were getting close at the end, but we didn't play good enough to win tonight. We wouldn't have deserved it if we tied or won that game."
During the winning streak, the Maple Leafs allowed just five goals. But in this one, they were shaky defensively, allowing two rebound goals and two others off turnovers.
"We gave them a lot of room to play and we paid the price," Toronto coach Pat Quinn. "We ended up losing the game because of our defensive play. We wanted to trade rushes with them and at the end of the game, we weren't good enough. Our second period was just dreadful."
After Ethan Moreau's shorthanded tally gave the Oilers the lead with 2:32 left in the opening period, Marty Reasoner and Carter scored in a 72-second span to build the cushion to 3-0 with 7:31 left in the second.
"We had a lot of quality efforts by a lot of guys in the dressing room," Carter said.
Sundin gave Toronto some momentum by scoring from behind the net with 65 seconds to go in the period.
After getting outshot, 18-8, in the second, the Maple Leafs played with more energy over the final 20 minutes, getting the fans in the game. Among them was Swedish prime minister Goran Persson, who was part of a pregame ceremony.
But each time the Maple Leafs pulled within a goal, the Oilers quickly answered.
"They're fast and they get in the forecheck and play a different style than a lot of teams do nowadays," Toronto's Darcy Tucker said. "We didn't skate with them for two periods, and that's what cost us the game."
Alyn McCauley snapped a shot from the left faceoff circle inside the right goalpost to make it 3-2 at 2:45 of the third. But less then two minutes later, the Maple Leafs were caught on an odd-man rush and the Oilers capitalized.
Ed Belfour made a kick save on Jason Chimera's slap shot from inside the blue line. But the Maple Leafs could not clear the puck and All-Star defenseman Eric Brewer stuffed in the rebound to restore Edmonton's two-goal advantage at 4:46.
At 9:06, a mistake by Salo allowed Toronto to again close within one as the goalie fanned while trying to clear the puck. It bounced onto the stick of Tie Domi, who skated in front and had an easy tap-in make it 4-3.
Again, Toronto's momentum was short-lived as Horcoff answered 59 seconds later.
"They were quick and aggressive," Quinn said. "They don't sit back. Our guys will pick a static box apart, but under pressure, we're not as quick or as good, and we weren't tonight."
The Leafs got Belfour off for an extra skater with more than a minute remaining and pressed for the equalizer. Sundin had a chance, but his shot from the right circle hit off the side of the net with 40 seconds to play.
Toronto's best opportunity came 17 seconds later as Mikael Renberg was open in the slot. But Salo kicked aside his last slap shot.
Belfour made 29 saves.