United come from behind to knock Liverpool out of the FA Cup. Salah opened the scoring with a brilliant chip over Henderson before Greenwood equalised for United.
Rashford then put United up just three minutes into the second half after Williams missed his clearance.
Salah levelled with his second of the game from close range before Fernandes came off the bench to seal the win with a great free-kick on the edge of the box.
United will face West Ham in the fifth round at Old Trafford.
Their attention turns back to the Premier League as they face Sheffield United on Wednesday.
Liverpool is now without a win in three games as they focus their attention back on the league with a tough test against Tottenham.
Liverpool had their full influence in it and may appear to be somehow unfortunate to have lost.
Jurgen Klopp’s team enjoyed more possession in the game and created some great chances. With the score at 2-2 not long before Fernandes’ winner, they were the dominant side.
However, Liverpool also committed errors, as well, and you basically can’t do that against this United team.
Ole Gunnar Solskjaer’s side are not the finished goods – not by a long margin – but rather they do have goals in them. They won here basically because they were more clinical.
Liverpool was ahead right on time through Mo Salah and it was a wonderful goal.
Yet, at that point United thundered back into it through Mason Greenwood and when youngster Liverpool defender Rhys Williams miskicked to enable Marcus Rashford through in the second period.
Solskjaer’s squad looked decent. Liverpool had endured through a difficult ten minutes before half-time and abruptly looked somewhat lost.
Liverpool, in all honesty, gazed all at sea. It was amazing the way the game had changed.
But Klopp’s team were not ready to succumb in just yet. Back they came with a renewed sense of urgency and after Milner dipped in a good chance over from Firmino’s knockdown in the 58th minute he played a huge part in the equaliser less than a minute later.
United tried to play the goal kick out from the back and never looked comfortable. Edinson Cavani eventually loses the ball away to Milner and when he drove forward and looked to swap passes with Firmino, he let the ball run across him and Salah swept it in from 12 yards.
So a good game had just gone up another level. Neither side looked much inclined to play extra time and so the punch and counter-punch continued, Alexander-Arnold the next to threaten as he brought a near-post to save from Henderson when he may have looked to square the ball.
With Sadio Mane sent on for Liverpool and United introducing Bruno Fernandes, it seemed unlikely the recreation levels would plummet.
Indeed had Salah not applied an unusually weak finish when played through down the right by Firmino Liverpool would have entered the final 20 minutes ahead.
As it was, Henderson was able to save and United continued to look for chances on the break. Apart from their second goal, Solskjaer’s team had not created any opportunities since half time. And when Salah worked Henderson again with just over 15 minutes left it was signifying of the flow of the game.
However United often send a threat and when Fabinho needlessly brought down Cavani a yard outside the penalty area, the home team had a golden opportunity. Fernandes took it and almost out of nothing they were back in front.