The Sky Blues take all three points from league leaders Fulham at Craven Cottage.
Michael Rose headed in the opener after rising highest to glance home Gustavo Hamer’s corner to give City the lead.
Viktor Gyokeres fired home his 16th goal of the season in all competitions after his effort from the edge of the area was spilled into the net by Marek Rodak doubling the Sky Blues’ lead.
Fulham substitutes Josh Onomah and Bobby De Cordova-Reid linked up inside the area in the 82nd minute with Reid firing past Simon Moore to make it 2-1, moments before Callum O'Hare wrapped up the points in injury time.
The visitors had a chance to take the lead nine minutes in, Gustavo Hamer’s curling free kick was met by Jake Bidwell at the back post, but he failed to turn his effort goalwards.
City continued to press and had a chance to break the deadlock soom after, Callum O’Hare played in Gyokeres down the left wing, the forward drove into the box and unleashed an effort, however Tosin Adarabioyo made a good block to deflect it wide.
Mark Robins’ men finally took the lead after 20 minutes, an in swining corner by Hamer was glanced goalwards at the fornt post by Rose and a slight deflection send it into the far corner to make it 1-0.
The lead was doubled just four minutes later, Gyokeres received the ball out wide and glided inside past Adarabioyo before his powerful effort was parried in by Fulham keeper Marek Rodak giving City a 2-0 lead.
The hosts started appliyng some pressure and Simon Moore was called into action on to 30 minute mark, Championship leading scorer Aleksander Mitrovic’s headed effort was flying in the top corner before Moore tipped it out for a corner.
City looked to extend their lead and Dom Hyam had a glaring oppourtunity to make it 3-0, another Hamer corner found Hyam in space inside the six yard atrea, however he couldn’t direct his header on target.
Fulham looked to pull a goal back before the break and nearly found a goal back after a deep cross from Neco Williams was volleyed off the crossbar by Kebano.
HALF-TIME: FULHAM 0 - 2 SKY BLUES
The host looked to make an immidiate impact in the second half, Reid whipped in a cross which was met by Mitrovic at the back post, however the forward couldn’t steer his effort on target.
The Sky Blues came close to extending their lead 58 minutes in, Hamer made a slick interception and carried the ball deep into Fulhams area and smashed an effort towards Rodak’s near post, forcing him into a fine save.
Fulham created a couple of chances within minutes which saw Fabio Carvalho head just wide, before Moore kept City’s lead intact, keeping out Williams’ long-ranged effort.
As City continued to try and find a third it was Maatsen who nearly found it, O’Hare picked him out in soace in the far side of the area and his effort deflected off Williams and looped just over the bar for a corner.
The hosts managed to pull a goal back with eight minutes remaining, Onomah managed to pick out Reid in space and the forward fired first time past Moore to make it 2-1.
Moore remained composed in the City goal after large attacking spells from Fulham, substitute Rodrigo Muniz sent an effort towards goal, but a good recovery by Moore saw him keep City's lead.
Then, deep into stoppage time, Gus Hamer won the ball back and fired the ball across the six yard box to pick out Callum O'Hare and he found the back of the net.
FULL-TIME: FULHAM 1-3 SKY BLUES
Attendence: 19,401 (1,879)
Referee: Keith Stroud
Yellows: Fankaty Dabo, Ben Sheaf, Simon Moore, Harry Wilson, Gustavo Hamer
Goalscorers: Rose (20), Gyokeres (24), O'Hare (90+3); De Cordova-Reid (82')
Fulham XI: Marek Rodak(GK), Neco Williams (Rodrigo Muniz 75’), Tosin Adarabioyo, Tim Ream, Joe Bryan, Harrison Reed, Natahniel Chalobah (Bobby De Cordova-Reid 46’), Harry Wilson, Fabio Carvalho, Neeskens Kebano (Joshua Onomah 75’), Aleksander Mitrovic.
Unused Subs: Paulo Gazzaniga(GK), Michael Hector, Joe Bryan, , Jean Micahael Seri.
Sky Blues XI: Simon Moore (GK), Fankaty Dabo, Michael Rose, Dom Hyam ©, Jake Bidwell, Ian Maatsen, Ben Sheaf, Jamie Allen, Gustavo Hamer, Callum O’Hare, Viktor Gyokeres.
Unused Subs: Ben Wilson (GK), Cian Tyler (GK), Todd Kane, Ryan Howley, Will Bapaga, Fabio Tavares, Martyn Waghorn.