Charlie Batch, forced to start at quarterback for Pittsburgh because of injuries to Ben Roethlisberger and Byron Leftwich, was picked off three times and the Steelers (6-5) lost five fumbles, the last on a final-play lateral to help the Browns (3-8) beat Pittsburgh for just the second time in 18 games.
Browns rookie quarterback Brandon Weeden sustained a head injury in the final minutes, allowing backup Colt McCoy to come in and finish off a victory that Cleveland fans will savor long after this season ends.
Rookie Trent Richardson rushed for 85 yards, scoring the go-ahead touchdown for the Browns on a 15-yard run in the third.
Batch finished 20 of 34 for 199 yards.
For one of the few times in recent years, the Browns were finally able to win a close game. And this one had to please new owner Jimmy Haslam, who had a minority share of the Steelers before buying the Browns for $1.05 billion in August.
One of his goals was to revive one of the NFL's fiercest rivalries, which has been shaded in yellow and black for most of the past decade. Even with the loss, Pittsburgh is 23-5 against Cleveland since 1999, but in each of the seasons they lost one game to the Browns, the Steelers missed the playoffs.
That could happen again. Pittsburgh came in trailing first-place Baltimore by two games in the AFC North, and will visit the Ravens next week.
Coach Mike Tomlin has a lot to work on before then.
All four Pittsburgh running backs fumbled and while Batch didn't necessarily hurt the Steelers, he didn't make enough big plays either. The Steelers were also called for several holding penalties that slowed drives.
Wide receiver Plaxico Burress, re-signed by the Steelers during the week, did not have a reception but did draw an interference penalty in the end zone.
Weeden finished 17 of 26 for 158 yards, but the 29-year-old was taken to the locker room in the closing minutes. He banged his head on the leg of teammate Joe Thomas as he fell to the ground and got up groggily. The Browns then turned to McCoy, their former starter who sustained a concussion the last time the Browns faced the Steelers on a vicious hit by James Harrison.
Pittsburgh lost linebacker LaMarr Woodley in the first half with a left ankle injury.
Phil Dawson kicked field goals of 28 and 32 yards for the Browns.
Cleveland's fourth takeaway set up Richardson's TD run.
Browns cornerback Sheldon Brown, picked on during the Steelers' late scoring drive in the first half, intercepted Batch at Pittsburgh's 31.
Two completions by Weeden got it to the 10, and after a false-start penalty, Richardson burst up the middle, ran through some arm tackles and scored to make it 20-14.
The Steelers led 14-13 at halftime despite losing three fumbles, converting just one third down and keeping Batch under wraps.
One play after Brown was called for pushing Burress in the end zone, Rainey, on the field only because the three Pittsburgh running backs ahead of him fumbled, scored on a 1-yard TD run after being stopped for no gain.
Rainey was stuffed on a carry over center by several Browns, who knocked him backward. Rainey, though, kept his legs moving and ran untouched into the end zone with 1 second left before halftime.
The Browns capitalized on a fumble by Isaac Redman when Weeden hit tight end Jordan Cameron for a 5-yard TD, giving Cleveland a 10-7 lead in the second quarter.
Redman fumbled at Pittsburgh's 10 and when he came to the sideline, he and Rashard Mendenhall, who coughed the ball up earlier to set up a field goal for the Browns, got an earful from running backs coach Kirby Wilson.
Weeden had been struggling in the red zone of late, but he hooked with Cameron, who scored his first career TD.
Cleveland was winning the battle of field position, pinning Pittsburgh deep and daring Batch to try and throw and beat them. He had little success, and the Browns took a 13-7 lead on Dawson's 32-yarder, making him 21 of 21 this season.
It took the Steelers just 71 seconds to take a 7-0 lead.
On Cleveland's third play, Weeden's pass to Greg Little was tipped at the line by Steelers end Brett Keisel and caught on the fly by Lawrence Timmons, who took it back 53 yards.
Online: http://pro32.ap.org/poll and http://twitter.com/APNFL