The Good: The Bengals ran for five first downs and had three plays with rushes of at least 10 yards.
The Bad: Two of those three players were wide receiver Alex Erickson on an end around and quarterback Andy Dalton on a scramble while running backs Joe Mixon, Jeremy Hill and Giovani Bernard combined for just 34 yards on 17 carries.
Key Play: On the opening drive of the third quarter, Bernard converted a third and 3 with a hard run that extended the final scoring drive of the day for the offense.
›› 5 things to know about Bengals win against Colts
The Good: Both of Dalton's touchdown passes came on third and 8, and he also converted a third and 8 earlier in the first touchdown drive. Dalton compiled a 108.8 passer rating despite taking a beating that included three sacks and another six hits.
The Bad: Not only did the offensive line make Dalton's 30th birthday a difficult one, it made it painful by repeatedly failing to pick up free runners who delivered shot after shot on the quarterback.
Key Play: One of those shots came on the 25-yard touchdown pass to Josh Malone – the rookie's first career score – in which Dalton got just enough on the ball to get it to the end zone. And Malone did a great job of adjusting to the altered flight of the ball and went to the ground to scoop in the score.
›› Bengals rookie Joe Mixon responds to tweets from Steelers’ Le’Veon Bell
The Good: The Bengals kept explosive rookie Marlon Mack in check, limiting him to 2.5 yards per carry on 11 attempts.
The Bad: The Bengals allowed 34-year-old Frank Gore to rush for a season-high 5.1 yards per attempt, which kept the challenged Colts offense in manageable situations and led to them converted 8 of 16 third downs.
Key play: Limiting Gore to 4 yards on a first-down carry late in the game was just enough to tempt the Colts into throwing on second down despite the desire to burn time, and Bengals defensive end Carlos Dunlap turned that pass into the game-winning score.
›› ARCHDEACON: Dunlap saves football games, lives
The Good: The Bengals had four sacks and another seven quarterback hits, and the two sacks on the opening drive helped force the Colts to adjust to a quicker, safer passing attack which negated explosive wide receiver T.Y. Hilton.
The Bad: Tight end Jack Doyle set career highs with 12 catches and 121 yards, including a go-ahead 13-yard touchdown in the second quarter.
Key play: Dunlap's 16-yard interception return for a game-winning touchdown is as key as it gets.
›› Colts tight end Doyle has one of biggest games ever by a Bengals opponent
The Good: The Bengals blocked their first punt since 2014 when rookie Jordan Willis bull-rushed the personal protector and got his right hand on the ball to give the offense a short field for their first series of the game. And Alex Erickson had a season-long 29-yard punt return to give the Bengals another short field on their second series.
The Bad: Erickson muffed a punt that led to the Colts' first points on a 29-yard field goal, punter Kevin Huber had his first two touchbacks of the season and kicker Randy Bullock had a 34-yard field goal blocked.
Key Play: Bullock's game-winning extra point was hardly a given the way the game was going, especially after he had already had a field goal from almost the same distance blocked.
Follow Jay Morrison on Twitter
The Good: The Bengals appeared to be battling a hangover from the loss to the Steelers, yet they found a way to overcome a litany of struggles to pull out the win. And while the coaches should get some of the blame for the slow start, they also deserve some of the credit for keeping things together and putting the players in position to win.
The Bad: The offensive line not only is failing to show any signs of progress through eight weeks, it's regressing. The number of free runners the Colts had Sunday was staggering.
Key Play: Marvin Lewis won his third consecutive challenge, and it was a key one that negated a 19-yard gain on the first play of the final drive for the Colts, who only needed a field goal to win.
JOIN THE CONVERSATION: Like our Cincinnati Bengals News Now Facebook page