Unlikely goalscorers John Stones and Fernandinho secured Manchester City's shot at a fourth successive Carabao Cup crown as Manchester United lost their fourth consecutive semi-final.

Pep Guardiola's men have not tasted defeat in this competition since 2016 and will face Jose Mourinho's Tottenham in the final on 25 April after edging past their neighbours at an empty Old Trafford.

Rejuvenated Stones' first City goal since November 2017 and Fernandinho's first since October 2018 gave the Carabao Cup kings a 2-0 victory at United, who lost a fourth straight semi as Ole Gunnar Solskjaer's wait for a maiden trophy in charge continued.

This encounter was far more entertaining than last month's drab goalless derby draw, with Bruno Fernandes denied by a superb Zack Steffen stop and Kevin De Bruyne hitting the post after each side saw a goal ruled out for offside.

Those incidents all came in a frantic opening 15 minutes and Phil Foden had a goal ruled out for offside before time was called on a captivating first half in which City bossed possession.

United held firm until the 50th minute, when Stones ghosted in and capitalised on some questionable defending to turn home a Foden free-kick.

Dean Henderson kept United in it but Fernandinho ended any hope of a comeback on a night when City paid their respects to club great Colin Bell, who died aged 74 on Tuesday afternoon.

The visitors emerged onto the pitch wearing retro number eight shirts in tribute to the ex-England international, with former team-mate Mike Summerbee understandably emotional during the minute's silence.

The semi-final started at an electrifying pace, with each side seeing a goal ruled out inside the opening five minutes.

Stones was relieved after Marcus Rashford was ruled offside in the build-up to him turning into his own net, before Ilkay Gundogan strayed beyond the hosts' backline when meeting a Foden cross.

The intense opening continued as both sides pushed for an early goal, with back-up City goalkeeper Steffen producing an outstanding one-handed save to claw away Fernandes' curler.

De Bruyne soon went close for the visitors when unleashing a laser from 20 yards that beat Henderson but came back off the post.

Play eventually settled and City took control of possession, playing quick passes but remaining patient in their attempts to prise open the United backline.

Foden became the third player to see a first-half opener ruled out for offside, with the flag raised after bursting through and beating Henderson in the 24th minute.

The visitors had 68 per cent possession over the first half but United were a threat, with Rashford wriggling free before being denied by a superb Ruben Dias block.

The United forward was proving a handful and stretching the City backline, with both sides seeing hopeful penalty appeals rejected before half-time.

Solskjaer's side had stood up well to the threat posed by the visitors but were undone by a free-kick in the 50th minute.

Foden swung in the ball from the left and Stones got between Harry Maguire and Luke Shaw to direct past Henderson, with the video assistant referee giving it the green light.

Joao Cancelo fizzed a thumping effort just over as City looked to quickly compound matters, with Henderson soon scrambling across his goal to tip wide a header from Raheem Sterling.

United's back-up goalkeeper did well to tip over a long-range Riyad Mahrez attempt as the visitors upped the ante, with skipper Maguire missing with a header and Fernandes curling off target as play became stretched.

Anthony Martial hit the deck in search of a spot-kick as the hosts became desperate for a leveller that would evade them.

Fernandinho ended United's hopes of reaching the final in the 83rd minute when De Bruyne's corner was cleared into the path of the Brazil international, whose excellent low strike from outside the box beat Henderson.

Match Details