PITTSBURGH -- The Pittsburgh Steelers had been in control pretty much all afternoon Sunday. For some insurance, they needed a late review to be ruled in their favor, that Cincinnati receiver Tyler Boyd did not have control of the ball before it was stripped.
Pittsburgh held the defending AFC North champion Bengals to 46 yards rushing and kept them out of the end zone through three quarters while building a 17-9 lead.
"Not the perfection, obviously, that we were looking for, but good enough," Steelers coach Mike Tomlin said.
Cincinnati put together a steady drive in the final three minutes of regulation with the hopes of getting into the end zone for just the second time and then getting a two-point conversion to force overtime.
Boyd caught the ball at the Pittsburgh 33 but was hit by linebacker James Harrison, forcing the ball loose. Robert Golden recovered it and returned it to the Bengals 46.
After seeing replays, which seemed to show Boyd's knee down before he was stripped of the ball, the crowd of 65,072 gasped in what seemed to be disbelief that that play stood as called after the review.
"I was told it was down even by the officials on our sideline," said Cincinnati coach Marvin Lewis, who was also surprised the play was not overturned. "They didn't see it that way overall, so that's all that matters."
Golden, grinning widely, said his view was blissfully limited.
"I didn't see anything but the ball," Golden said. "I just tried to pick the ball up and give it back to our offense to secure the win. We were able to get the ball back. The officials reviewed it, and they saw it in our favor. We were happy for it. We got the win. And that's all."
The game was devoid of the type of flare-ups between the division rivals that last season led to fines and a suspension that kept linebacker Vontaze Burfict out of this meeting.
The Steelers (2-0) have won 13 of their past 15 home openers. Cincinnati, which got three field goals by Mike Nugent, fell to 1-1.
A steady rain seemed to hamper both offenses early in the first quarter. As the weather cleared, the teams started to get untracked.
Xavier Grimble pulled in a 20-yard touchdown pass from Roethlisberger, stumbling and diving over the goal line for a 7-0 Steelers lead with 3:42 left in the first. The key play on the 66-yard drive was Roethlisberger's 44-yard pass on third down to Sammie Coates.
Cincinnati came back on the next possession with Nugent's 25-yard field goal to make it 7-3 at 0:23 of the first.
Pittsburgh got a gift in Kevin Huber's shanked 32-yard punt in the second quarter, but despite starting at the Bengals 35, the Steelers had to settle for Chris Boswell's 49-yard field goal after failing to get a first down. That made it 10-3 at 4:10 of the second.
After Roethlisberger's second interception of the game, Cincinnati moved 53 yards in eight plays to set up a 33-yard field goal by Mike Nugent as the first half expired. That pulled the Bengals to within 10-6.
On Pittsburgh's second possession of the third quarter, Roethlisberger again hooked up with Coates on a big play. This one was a 53-yard pass that set up Roethlisberger's 9-yard touchdown pass to Jesse James on the next play for a 17-6 lead at 6:16.
Coates made only those two catches, for a total of 97 yards.
"You've got to get better and better as the game goes on," Coates said. "Other than that, it was just making the plays when the opportunities come."
Two Steelers interference penalties put Cincinnati on the 1-yard line late in the third, but the Bengals still could not get into the end zone. After three plays netted minus-2 yards, Nugent's third field goal, from 21 yards, made it 17-9 at 2:10.
The rain returned in the fourth, but it didn't stop a methodical Pittsburgh 12-play, 68-yard scoring drive. Roethlisberger's 14-yard scamper to the Bengals 5 helped set up his 4-yard scoring pass to Williams, making it 24-9 at 6:48.
Cincinnati responded with its only touchdown drive, moving 75 yards in eight plays and culminating with Andy Dalton's 25-yard scoring pass to Giovani Bernard to pull the Bengals to within 24-16 with 3:23 left.
That's the way it ended, thanks to the big turnover.
"I should have done a better job with ball security," said Boyd, who played his college ball at Pitt. "I still believe I was down, but the call didn't say so."
NOTES: Steelers starting WR Markus Wheaton (shoulder) missed his second game in a row. ... Pittsburgh LB Ryan Shazier played after being questionable because of a right knee injury he got in Week 1. ... The Steelers' other inactives were QB Zach Mettenberger, CB Senquez Golson, FB Roosevelt Nix, LB Steven Johnson, C/G Cody Wallace and DE LT. Walton. ... Cincinnati DT Pat Sims, who got an injured ankle in Week 1, played. ... Bengals CB Darqueze Dennard, who missed the season opener because of an ankle injury, played. ... Bengals starting TE Tyler Eifert (ankle) was out. TE C.J. Uzomah started in Eifert's place. ... Cincinnati's other inactives were QB Jeff Driskel, WR Cody Core, CB Chykie Brown, CB KeiVarea Russell, G Christian Westerman and DT DeShawn Williams. ... Steelers QB Ben Roethlisberger's first-quarter TD pass was the 276th of his career, moving him ahead of Vinny Testaverde and alone into 12th place all-time in the NFL.