"It's a big relief," Ryan Smyth said. "When you're struggling, it's frustrating. You're squeezing your stick, losing a bit of confidence. But tonight we decided the game was in our hands.
"There's no easy teams in this league anymore. Pittsburgh is a young team but they work hard and don't quit. But we knew we had to take this game."
The Oilers, losers of four straight coming into the contest, fired a season-high 42 shots at Pittsburgh's rookie goaltender Marc-Andre Fleury. But Edmonton trailed 3-2 until the goal by Cross 25 seconds into the third.
Adam Oates won a faceoff back to Cross, who ripped a shot past Fleury from the top of the circle. Oates earned an assist, his first point in four games as an Oiler since being signed as a free agent.
Horcoff gave the Oilers a 4-3 lead at 2:56, scoring his first goal in 10 games. Georges Laraque dug the puck out of the corner and drove the net. His shot was stopped, but Horcoff knocked the rebound off Fleury and into the net.
"In the third period, it was just a matter of staying confident," Horcoff said. "You know that somebody will score when you keep getting all these shots."
Mike York and Smyth also scored for the Oilers, 1-5-1 in their last seven games.
Patrick Boileau, Ryan Malone and Brian Holzinger scored for the Penguins, 1-4-1 in their last six games and last in the NHL with 17 points.
"We had our chances in the second period," Pittsburgh coach Eddie Olczyk said. "It was a two-goal lead we had -- haven't had many of those -- and the puck took a funny bounce in the corner and Ryan Smyth put it in."
Fleury faced 10 shots in the first 10 minutes and 31 over the first two periods. His best stop came five minutes into the second, when he robbed York with his glove on a 2-on-1.
York opened the scoring 2:51 into the game. Ales Hemsky waited for Fleury to commit while cruising past the crease, then slipped a pass in front to York for an easy tap-in.
Boileau evened the score with a power-play goal at 9:29 of the first with a point shot that deflected past Ty Conklin.
Malone gave the Penguins a 2-1 at 19:31 of the first, stripping the puck from Oilers defenseman Scott Ferguson and beating Conklin to the short side.
Holzinger opened up a 3-1 Pittsburgh lead with a power-play goal two minutes into the second. The Penguins passed the puck smartly around the Edmonton zone before Holzinger hammered a shot low to the far side past Conklin after taking Boileau's cross-ice pass.
Smyth trimmed the score to 3-2 just over a minute later, at 3:04, with his first goal in nine games. The puck bounced in front to Hemsky, whose shot was blocked. But Smyth was there to pop in the rebound.