Rashford, dropped to the bench to make way for Anthony Martial, turned in Henrikh Mkhitaryan’s corner in the 70th minute, less than three minutes after coming on.
Fellaini added a late second from Jesse Lingard’s cross-shot to send Jose Mourinho’s side back to the top of the table after Huddersfield Town briefly overtook them by drawing with Southampton earlier in the day.
But it looked as if they would be denied when Kasper Schmeichel made a superb penalty save from Romelu Lukaku early in the second half.
The Leicester goalkeeper, son of former United great Peter Schmeichel, dived to his right to push away Lukaku’s kick.
The home side began full of confidence, threatening in the opening minute as Leicester captain Wes Morgan blocked a shot from Mkhitaryan after good build-up play down the United right.
Craig Shakespeare’s side had to work hard to withstand that early pressure, with Morgan at full stretch in central defence alongside new England squad member Harry Maguire.
United, though, continued to press, with Juan Mata unlucky to have a goal ruled out for a marginal offside in the 18th minute.
Paul Pogba’s cross was cleared unconvincingly by Maguire and Lukaku turned on the edge of the area to hit a shot that Mata followed up to sweep in after Schmeichel had parried.
Assistant referee Constantine Hatzidakis raised his flag, but Mata looked to have been level with the Leicester back line as Lukaku let fly.
Fired by that perceived injustice, United went close twice in quick succession.
– Mahrez menaces –
First Pogba half-volleyed Martial’s outswinging cross just wide at the far post and then Schmeichel dived athletically to his right to paw away a bending Mata shot.
Shinji Okazaki had a half-chance for Leicester at the other end, with David de Gea gathering his low shot from Jamie Vardy’s knock-down.
But United continued to look the more dangerous side, with Pogba hitting a fierce 30-yard shot that flew just wide.
Schmeichel was alert to gather Martial’s snapshot from 20 yards, before beating away a Pogba effort and then watching another drive from the France midfielder whizz by his right-hand post.
Having been well protected by his defenders in the first half, Schmeichel was inspired to keep the game goalless when United were awarded a penalty in the seventh minute of the second half.
Leicester’s former United right-back Danny Simpson was adjudged to have handled Martial’s driven cross from the left, but Schmeichel flung himself to his right to push away Lukaku’s spot-kick.
That gave the visitors the confidence to be a little more adventurous, with winger Riyad Mahrez cutting in from the right and driving a ball to the near post that De Gea kicked away.
Mahrez, repeatedly linked with a move away from Leicester, began to carry more of a threat, scuffing one shot wide and then breaking onto a pass by substitute Demarai Gray to deliver a dangerous cross.
But 20 minutes from the end, Rashford diverted in Mkhitaryan’s right-wing corner on the volley, with Schmeichel only able to push it into the roof of the net.
Victory was secured in the 82nd minute as Fellaini diverted in fellow substitute Lingard’s cross, despite replays suggesting he had been offside.
The visitors almost pulled one back in stoppage time, but De Gea reacted well to turn away Andy King’s close-range shot. Lukaku then blazed over at the other end.
Would you like to place a soccer bet? Click here to get started in 3 easy steps.