Bernardo Silva’s late strike gave Manchester City a 1-0 win over Chelsea at Wembley and booked their place in the FA Cup final.
Chelsea had, on the whole, dominated the last-four clash, with Nicolas Jackson wasting three huge chances for Mauricio Pochettino’s side, who could well have had a penalty when Jack Grealish appeared to handle the ball from a Cole Palmer free-kick.
But City defied a largely sloppy performance and any tired legs after their midweek Champions League exit to secure another Wembley return, as De Bruyne’s cut-back fell for Silva and his deflected finish broke the deadlock with six minutes remaining.
City, without the injured Erling Haaland, were not at their best - perhaps still feeling the effects of their draining encounter with Real Madrid.
With former City midfielder Cole Palmer instrumental, Chelsea made most of the running. Palmer played in Jackson early on but his shot was too easy for Stefan Ortega.
City's first opportunity came as Kevin De Bruyne slipped in Phil Foden with an inch-perfect pass but he went too wide attempting to go round Djordje Petrovic and Chelsea escaped.
Pep Guardiola's side had a huge let-off when Jackson raced clear from an Enzo Fernandez long ball. Jackson only had Ortega to beat but he hesitated on the edge of the area and failed to shoot or go round the goalkeeper.
City were caught out again when Malo Gusto escaped down the right but he could not pick out Jackson in the centre. Palmer also dug out a chance for himself with some neat footwork but did not get any power on his shot.
At the other end, Marc Cucurella cleared off the line after Silva got on the end of a Jack Grealish cross but the flag was then raised.
Jackson failed to deliver again early in the second half after breaking clear in the area but shooting tamely at Ortega. The ball came back to him as Palmer whipped in a cross but his header was weak and straight at Ortega.
City had another let-off when a Palmer free-kick struck the arm of Grealish. The contact was missed by referee Michael Oliver, with Chelsea's frustration at not getting a penalty compounded by the official awarding a goal-kick. Jackson also wanted a spot-kick after going down following a race with Kyle Walker but nothing was given.
Grealish suffered a heavy blow to the knee in a challenge from Felipe Caicedo and was withdrawn moments later. The England international voiced his frustration to the officials as he left the field, maybe suggesting Caicedo - already on a booking - should have been dealt with more severely.
Grealish's replacement Jeremy Doku made a lively entrance and immediately tested Petrovic.
As time wore on, the game became a test of City's resolve and the lively Doku made a notable difference.
He was involved as the deadlock was finally broken, playing in fellow Belgian De Bruyne with a clever ball. De Bruyne pulled the ball back across goal and a deflection took it into the path of Silva, who made no mistake.
It was a sweet moment for the Portuguese, who celebrated vigorously out of relief and joy. There was no way back for Chelsea as City, befitting their champion status, held out.