Cavani’s stunning curling effort from 20 yards ended the hosts’ resistance in front of 2,000 fans, just as the game looked set to head to penalties.
With Everton chasing the game, substitute Anthony Martial added a second in stoppage time as Ole Gunnar Solskjaer attempts to earn his first trophy as United boss.
Everton were lacklustre in the second half, after Richarlison went off injured, having promised much in the first period, with Gylfi Sigurdsson’s free-kick testing Dean Henderson.
Defeat for Carlo Ancelotti’s team ends a run of three successive wins which has lifted them to fourth in the Premier League table.
Cavani shows class as away run continues
United continued their upsurge over the last month with a victory which means they have now won all nine of their domestic away games this season – a run which has seen them go third in the Premier League table with a game in hand on their rivals.
Despite making nine changes to the team which beat Leeds on Sunday after going 2-0 up inside three minutes, Solskjaer’s side began with a similar intensity but could not find a breakthrough against an Everton team whose defence has improved in recent games.
In keeping with their 3-1 at Goodison last month, however, Fernandes was at the heart of their endeavour and in Cavani, they had a striker with a keen eye for goal despite missing the last few games through injury.
Olsen, who nearly gifted the ball to Cavani when attempting a clearance, made up for that error with a fine double save to deny the Uruguayan, while Mason Greenwood went close with a header.
There were also chances for Paul Pogba and Fernandes from a free-kick but Olsen saved both efforts, and once Everton found their feet midway through the first half, United found it hard to break down their opponents.
With the game petering out in the second half, Solskjaer sent on Marcus Rashford and Martial in search of a goal, but neither appeared to provide a spark.
That was until Martial found space on the counter attack to feed Cavani, who cut inside Ben Godfrey and found the bottom corner with a rasping half-volley for his fourth of the season.
With Everton committing players forward to take the game to spot-kicks, they allowed United to break twice more with Fernandes hitting the post on one surge before Martial finished a slick move for his fourth of the season too.
Having slipped up in three cup semi-finals last season, Solskjaer said he was “desperate” for silverware this campaign, and his side are showing signs they could win the first trophy for the club since their 2017 Europa League triumph.
Fans can’t help Everton as trophy search continues
Everton’s improvement in their last three games has been buoyed by being one of a handful of teams who can now allow fans into their stadium.
But on a cold and wet night at Goodison Park, where the supporters did their best to raise the team, Ancelotti’s side could not find a rhythm to overly trouble United, who looked like they had the extra guile to win the tie.
Much of Everton’s recent success has come by holding firm in defence and breaking on the counter-attack, and there were moments when Henderson was called into action to deny Sigurdsson and Calvert-Lewin.
But much of their endeavour came from set-pieces, and when they lost Richarlison to what looked like a head injury following a collision with Eric Bailly, they struggled to get in behind the United defence.
Before the break, it was the much improved Sigurdsson who provided the hosts’ biggest threat, with his corner teeing up Calvert-Lewin and a weaving run leading to blocked shot before his fizzing free-kick was saved.
After Cavani’s late finish, the fans in the Gwladys Street End urged an equaliser as Godfrey’s shot was stopped, but Ancelotti’s side missed out on a first semi-final since 2016 as their search for a first trophy since their 1995 FA Cup win continues.
Everton returns to the Premier League with a trip to the bottom of the table Sheffield United on 26 December, before hosting Manchester City two days later.
Manchester United are away at Leicester on Boxing Day and face Wolves at Old Trafford on 29 December.