The Sky Blues fell to a second defeat of the season at the Cardiff City Stadium.
Goals from Dimitrios Goutas, Karlan Grant and Kion Etete wrapped up the points for the hosts, cancelling out Matty Godden’s first half leveller and injury time header.
The hosts took the lead with their first attempt on goal. A corner in from the left was met by the head of Dimitrios Goutas and he directed the ball past Ben Wilson and into the back of the net.
Ike Ugbo could have fired the Bluebirds into a two-goal lead, but his first-time effort from a ball in from Ollie Tanner, went wide of goal.
Cardiff would be left to rue that missed opportunity as City found a leveller moments later. Josh Eccles with a corner into the box which was cleared only as far as Milan van Ewijk, who laid the ball off to Liam Kelly and he picked out Matty Godden, who struck on the turn and beat Jak Alnwick to make the scores level at 1-1.
HALF-TIME: Cardiff City 1-1 Sky Blues
The Sky Blues were forced into an early change at the start of the second half, as Tatsuhiro Sakamoto came on to replace Milan van Ewijk.
However, the Bluebirds would restore their lead on the hour-mark when Karlan Grant found himself in space at the back post and headed the ball past Wilson.
City looked for a leveller once more and they came close when Godden’s ball across goal was cleared to Kasey Palmer on the edge of the area, but Jak Alnwick made a fine stop to keep him out.
Yasin Ayari was introduced with 20 minutes remaining and he tried his luck from range, firing the ball wide from 25 yards out.
The midfielder came closest to finding the equaliser once more, this time working his way into the box to glance on a Sakamoto cross, but he couldn’t find the target.
Cardiff wrapped up the points five minutes from time when substitute Kion Etete found the bottom corner from a tight angle.
Five minutes into stoppage time and Godden had a second of the night, heading home a ball into the box from Jay Dasilva, but it would come to late, as City fell to defeat.
FULL-TIME: Cardiff City 3-2 Sky Blues
Goals: Dimitrios Goutas, Matty Godden x2, Karlan Grant, Kion Etete
Yellows: Jamilu Collins, Matty Godden, Joel Latibeaudiere, Perry Ng, Kyle McFadzean
Sky Blues Xl: Ben Wilson (GK); Joel Latibeaudiere, Kyle McFadzean, Luis Binks (72’ Kitching); Milan van Ewijk (52’ Sakamoto), Liam Kelly (C) (72’ Ayari), Josh Eccles, Jay Dasilva; Kasey Palmer (83’ Allen); Haji Wright (83; Simms), Matty Godden.
Subs: Brad Collins (GK), Jake Bidwell, Liam Kitching, Bobby Thomas, Yasin Ayari, Tatsuhiro Sakamoto, Jamie Allen, Ellis Simms, Justin Obikwu.
Cardiff City Xl: Jak Alnwick, Perry Ng, Mark McGuinness, Dimitrios Goutas, Jamilu Collins, Manolis Siopis, Joe Ralls © (83’ Robinson), Ryan Wintle, Karlan Grant, Ollie Tanner (83; Etete), Ike Ugbo (71’ Meite).
Subs: Alex Rúnarsson, Mahlon Romeo, Jonathan Panzo, Romaine Sawyers, Ebou Adams, Rubin Colwill, Callum Robinson, Yakou Méïté, Kion Etete.