Aleksandar Mitrovic scored his sixth and seventh goals in five games as Fulham beat Preston North End in a battle at at Deepdale.
Mitrovic went closest after Fulham struggled in the opening 20 minutes with Preston's intensity, but the Serbian's effort was cleared off the line by Ben Pearson.
The away side ended the first half strongly and had a few chances with Ryan Sessegnon coming to within inches of connecting to a Ryan Fredericks cross, while Mitrovic had another effort saved.
And it was that man who got the goal again after Cyrus Christie was introduced - he got his second assist in as many games for the Whites as Mitrovic smashed home the ball from the six-yard box.
But Preston got back into the tie when Marcus Bettinelli made a hash of what should've been a routine save from Maguire's header to make it 1-1.
But Mitrovic scored again when Cairney floated the ball into the middle for the Serbian to nod home.
Here's how we rated the side:
Bettinelli 6: Made some important stops in the first half. Horrible mistake to allow Maguire's header to squeeze by him.
Fredericks 7: Made good use of the wings and looked the man that was going to provide today. Jokanovic decided to use the attacking threat of Christie with 20 mins left.
Ream 7: Another solid performance. Was comfortable in the middle and dealt with the threat of Maguire and Barkhuizen well.
Odoi 7: A few mistime jumps meant Sean Maguire was throw on goal a few times. Really good performance in the second half.
Targett 7: His usual performance - solid at the back and showed up front, although his final ball into the box could've been better.
McDonald 8: A really good showing in front of the back four once again. Was always in the right place at the right to mop up the second balls.
Cairney 6: Pearson allowed him no time on the ball but he started to dictate play more as the game went on.
Johansen 6: Didn't have the best of performances and wasn't his usual bullish self. Looked better in the second half but it wasn't the performances we've seen in recent weeks.
Sessegnon 7: Was unlucky not to get his boot to the ball and score in the first half but it was another fairly quiet game from the youngster.
Ayite 6: Looked better in the second half and got on the ball more, causing problems. He gave the ball away sloppily a few times and was taken off with half hour left.
Mitrovic 8: Wasn't as involved in the game as he has been in previous matches in the first half. Much better in the second half with his hold-up play and got the two goals.
Piazon 6: Did well in between the lines and gave Fulham an extra outlet when going forward.
Christie 7: Came on and provided a lovely assist down the right for Mitrovic's goal. A really inspired sub by Jokanovic.
Ojo N/A: Didn't have enough time to affect proceedings.
Keep up to date with the latest news in west London via the free getwestlondon app.
You can even set it to receive push notifications for all the breaking news in your area