Dalton completed 15 of 25 passes for 154 yards, including scoring passes to A.J. Green, Alex Erickson and tight end Tyler Kroft.
Cornerback Dre Kirkpatrick returned an interception 87 yards, before fumbling and recovering at the 1-yard line to set up the first touchdown by the Bengals (4-6). Linebacker Vontaze Burfict forced a fumble by running back C.J. Anderson, leading to Dalton's 18-yard touchdown pass to Green midway through the fourth quarter.
The Bengals snapped a 10-game losing streak in Denver since their last victory 17-16 on Nov. 9, 1975.
Brock Osweiler completed 23 of 42 passes for 254 yards, including a 17-yard touchdown pass to Demaryius Thomas. The Broncos' wide receiver pulled the ball in with Kirkpatrick draped on him and pulled the Broncos to within three points with 5:05 remaining.
The Bengals ran more than three minutes off the clock before punting. The Broncos' final possession ended in a fourth-down incompletion and the Bengals took over on downs, running out the last few seconds in sending Denver (3-7) to its sixth straight loss.
Brandon McManus, whose 61-yard field-goal attempt just before halftime was blocked, converted a 45 yarder with 4:54 remaining in the third quarter. Denver trailed 13-10 heading into the fourth quarter.
Erickson got a step on cornerback Bradley Roby as they sprinted down the left sideline and Dalton hit him in stride for a 29-yard touchdown that gave Cincinnati a 13-7 halftime lead.
Denver was poised to strike first in the game when Shaquil Barrett ended Cincinnati's opening possession by breaking through to block Kevin Huber's punt, handing Denver possession at the Bengals' 29-yard line.
The Broncos moved the ball to the 4, but on third down Osweiler's pass intended for Cody Latimer was picked off by Kirkpatrick. He took off the other way, but fumbled in the midst of the runback only to recover the ball a yard shy of the end zone.
Two runs by rookie Joe Mixon were stopped for no gain before Dalton, on a play-action pass, hit Kroft for a touchdown. The extra-point try by Randy Bullock missed wide left.
Denver got on the board at the end of a 75-yard drive when Anderson ran it into the end zone from 3 yards out. Anderson had kept the drive alive earlier by converting a fourth-and-1 with a 3-yard run.
NOTES: NT Domata Peko Sr., who spent his first 11 seasons in Cincinnati before signing with Denver as a free agent in the offseason, extended his starting streak to 122 games. That's the longest active streak by an NFL defensive lineman. ... Bengals LB Vincent Rey left in the second quarter with a hamstring injury. ... TE Austin Traylor made his NFL debut after being promoted by the Broncos from the practice squad. Traylor filled the roster spot of TE A.J. Derby, who was waived/injured on Saturday.