United took the lead in the 34th minute through a well-taken goal by Marouane Fellaini. Everton though fought back strongly in the second half to get a deserved equaliser from an own goal from Chris Smalling.
The game looked like it was going to the extra time until the man of the moment Anthony Martial calmly stroked the ball in past Joel Robles in final seconds of the game to send the Reds to the final were they will either play Crystal Palace or Watford.
Lukaku went close to given Everton a lead early on
The first half began with the Reds on the front foot but they could have conceded early on. The Toffees went close to an opener when Romelu Lukaku went through one on one with David de Gea. The striker confidently took the ball around keeper but Wayne Rooney got back to head the strikers shot of the line to save his team.
The Reds woke up after that and created a brilliant chance of their own. Rooney played a lovely ball over the top of the Everton defence but Jesse Lingard saw his shot blocked by Joel who spread himself well to stop the United winger scoring.
Martial was next to go close for United when Lingard played the striker in on goal but the striker snatched at the shot with his left foot and the shot went high over the bar. The movement from Lingard, Martial and Marcus Rashford was causing the Everton defence all sorts of problem in the first part of the game.
Fellaini opens the scoring against his former club
The dominance the Reds had on the game finally paid off eleven minutes before half-time as Fellaini opened the scoring against his former side. The goal was created by Martial who beat his defender at the byline, played a lovely cut-back into the path of Fellaini who stroked the ball home with his left foot.
The rest of half saw United keep the ball well and stop Everton from making a comeback into the game.
The second half began at a frantic pace with both teams trying to score but no chances came until Lingard missed a good chance. The winger was played into space at the edge of the box by Rashford but he put his shot well wide of the goal.
De Gea saved a penalty early on in the seond-half from Lukaku
Everton then out of nothing went down the other end and were awarded a penalty by referee Anthony Taylor when Timothy Fosu-Mensah fouled Ross Barkley in the box. Lukaku took the penalty but missed as De Gea got down low to his left to get a strong hand to keep it out to keep his team in the lead.
The Toffees kept up the pressure and should have equalised once again when Tom Cleverley skied a shot from close range over the bar. Aaron Lennon was the one who laid it on a plate for the midfielder who should have scored against his former side.
United finally responded with a big chance of their own as Fellaini somehow didn't score his second goal of the game. Martial once again was the creator of the chance as he weaved his way past a few defenders and crossed it to Fellaini but the midfielder saw his shot blocked on the line.
Smalling scored an own goal to give Everton a deserved equaliser
Everton though did finally get the equaliser their play deserved in the second half when Smalling put the ball into his own net. Gerrard Deulofeu who came on caused the own goal when he played a cross into a dangerous area which Smalling diverted past the helpless De Gea.
Martial scores wonderful winner in the last minute to send United through to the final
After they got the equaliser Everton kept on going to try to score but Lukaku missed two great chances before the end. Lukaku would come to regret them misses as in the last minute of three minutes of added on time Martial scored a brilliant winner to send United through to the FA Cup final.