Allan Saint-Maximum’s well-taken volley cancelled out Rashford’s solo goal to send Steve Bruce’s Newcastle into half-time on level terms.
However, Fernandes assisted James to put United back in front before scoring a penalty himself – won by Rashford – to seal a hard-fought win.
Rashford had given United the lead with a fine solo effort after half an hour, though Karl Darlow will have felt he could have done better after being beaten at his near post.
However, Newcastle were level six minutes later as Allan Saint-Maximin smashed home a volley following a poor clearance from Harry Maguire, once again exposing United’s defensive frailties.
United lacked any sense of cohesion in the first half, and could perhaps count themselves fortunate to get into the break on level terms with David de Gea called into action on a couple of occasions.
Newcastle started the second half brightly as Saint-Maximin tested De Gea following another poor United aerial clearance from Fred, but James restored United’s lead after an hour.
Nemanja Matic showed a rare turn of pace to deceive the Newcastle defence and break into the box: his pass was toe-poked by Fernandes into the path of James, who controlled and drilled low past Darlow.
Rashford, who had scored the first goal, played a key role in United’s third as his quick feet bought a clumsy penalty off Arsenal loanee Joe Willock, with Fernandes calmly dispatching from the spot to tie up the game – and there was time left for 17-year-old academy graduate Shola Shoretire to make his first-team debit off the bench.
United may have been thoroughly unconvincing for large stretches of the match, but the victory was an important one nontheless as they leapfrogged Leicester City back into second place.
While Man City’s win at Arsenal leaves the leaders 10 points ahead and odds-on for the title, the race for a top-four finish looks set to go to the wire – and victories like these could be ones that United look back on as key come the end of the season.