With 1:21 left, Horcoff took a pass from Sam Gagner and backhanded a shot past McElhinney, who was looking for his first NHL shutout.
"Yeah it was close, but after the day I had I just wanted that win," McElhinney said. "I'm glad I got that win, it kind of takes some of that pressure off."
"It's a good feeling right now, and to be able to string three wins together here feels great," said McElhinney (3-2).
After breaking a seven-game losing streak with a 3-1 win over the Toronto Maple Leafs at home on Wednesday, the Oilers couldn't get much going against the Flames aside from Horcoff's goal.
"We don't even test their goaltender in the second period," Oilers coach Pat Quinn said. "We didn't even challenge anywhere because we never got in their end. That's a sign of a dumb team."
Jeff Deslauriers made 37 saves in a losing cause.
"He did a great job," Quinn said. "He was sharp all night long, kept us in the game."
Just 15 seconds into the game, McElhinney turned aside a shot by Gilbert Brule with his blocker. A short time later, McElhinney blocked a slap shot with his right pad to thwart a scoring opportunity by Dustin Penner.
The Flames poured on the pressure in the first period and outshot the Oilers 15-9. Deslauriers kept the Oilers in the game by turning aside back-to-back shots from the slot by Calgary forwards Dustin Boyd and Daymond Langkow.
Brandon Prust nearly scored the game's opening goal late in the first period, but he rang a hard shot off the crossbar behind Deslauriers.
In the second, Deslauriers made great glove grabs on shots by Langkow and Fredrik Sjostrom before Conroy finally broke the scoreless tie with 10.2 seconds remaining in the period.
"I think they were more hungry than us," Deslauriers said. "They kept working. They just worked harder than us at the end of the second and that paid off for them."
Conroy one-timed a pass from Rene Bourque past Deslauriers on Calgary's 28th shot for his second goal in two games after going without one in his first 36 games this season.
"You get that first one and then, you know, good things happen," Conroy said. "It definitely helps your confidence to get one and then all of a sudden you just feel like the weight of the world is off your shoulders."
Glencross put the Flames up 2-0 at 10:07 of the third with a nice redirection of a shot by Mark Giordano during a power play.
"The last three games we've done a lot of things better and yet it's something we can't drop our guard with," Calgary coach Brent Sutter said. "We've got to make sure we stay with it."
Since 1987, the Flames are 11-5-3 at home on New Year's Eve, including a 4-0-1 mark against the Oilers. ... Edmonton fell to 0-4-1 in the second game of back-to-backs this season. ... After blocking a shot off the stick of Calgary captain Jarome Iginla late in the first period, Edmonton defenseman Lubomir Visnovsky left the game with an injury to his left foot and didn't return.