Pittsburgh (11-3) limited the Ravens (9-5) to a season-low 202 yards. The Steelers have gone 14 straight games without yielding 300 yards, tying the 1973 Los Angeles Rams for the longest streak to start a season since the NFL merger in 1970.
Many of the players wore hats that proclaimed Pittsburgh as AFC North champions.
Running back Willie Parker said, "This is like our biggest win. I know we won the Super Bowl, but you just can't understand the feeling of the players in this locker room right now."
Pittsburgh trailed 9-6 before moving 92 yards in 13 plays to score the game's lone touchdown and take the lead for the first time. Roethlisberger went 7-for-11 for 89 yards on the drive.
"All game they didn't make plays," Ravens linebacker Ray Lewis said. "One drive they did."
Pittsburgh has come from behind in the fourth quarter four times this season, including last week, when the Steelers scored 17 points in the final 8 minutes of a 20-13 win over Dallas.
"We make the plays when they count," Holmes said. "It doesn't matter how the game goes through the course of three quarters. It always comes down to playing four quarters of football."
Matt Stover kicked three field goals for the Ravens, who remain in the wild-card hunt despite being eliminated from the division race.
"We'll be fine," said rookie quarterback Joe Flacco, who went 11-for-28 for 115 yards and two interceptions.
The Steelers began their final drive at their 8 with 3:36 left. Two straight completions to Hines Ward moved the ball to the 34, and a third-and-10 completion to Nate Washington for 16 yards got Pittsburgh to midfield.
Washington caught a 24-yarder to the 14, and a 10-yard pass to Ward set up first-and-goal at the 4. After two incompletions, Roethlisberger scrambled left, then found Holmes over the middle for the winner.
The play was reviewed because it appeared that while Holmes' feet were in the end zone, the ball was not.
Later, referee Walt Coleman said, "He had two feet down. When he gained control of the ball, the ball was breaking the plane."
Said Lewis: "That didn't win or lose the game for us."
Down 9-3, the Steelers used a 30-yard pass from Roethlisberger to Ward to set up a 30-yard field goal by Jeff Reed with 9:26 to go.
Baltimore then moved to the Pittsburgh 27, but a third-down sack forced the Ravens to punt, setting up the dramatic conclusion.
"They got a big sack when they had to at the end of the game ... then took the ball down the field and scored," Ravens coach John Harbaugh said. "That's the way they've won games."
Baltimore used an outstanding punt and a turnover to take the 9-3 third-quarter lead. After Sam Koch punted to the Pittsburgh 1, Holmes caught a pass but fumbled when hit by Samari Rolle. Ed Reed returned the ball to the 16, setting up a 28-yard field goal.
Later in the quarter, Holmes muffed a punt. Pittsburgh's Keyaron Fox took the loose ball 18 yards to the Baltimore 33, but Roethlisberger fumbled when sacked by Terrell Suggs on third-and-1 and Brandon McKinney plucked the loose ball out of the air for the Ravens.
Tempers flared after the play, and Baltimore's Haloti Ngata received a 15-yard penalty for vigorously pulling a Pittsburgh player from the angry crowd.
No surprise, given the sentiment on both sidelines in this intense rivalry.
"This was your typical Ravens-Steelers football game," Roethlisberger said. "I've got cuts and bruises as do other guys in (our) locker room, and I'm sure they do. It was physical, low-scoring - just like everyone thought it was going to be."
Notes: The Steelers have seven interceptions in their last three games and at least one in six straight contests. ... Baltimore's Mark Clayton had three catches to move into third place on the team's career list. ... Pittsburgh swept the season series for the first time since 2002.
Pittsburgh receiver Santonio Holmes, in white, gets his feet down in the end zone for a disputed touchdown catch with 43 seconds remaining in the Steelers' 13-9 win over Baltimore. The play was reviewed and ruled as the winning score by the officials.