The Red Devils' number one made a quality save to deny Miguel Almiron at the end of the match, which ensured the visitors did not leave Tyneside empty-handed.
Story of the game
Eddie Howe made six changes to the Newcastle team that were thumped by Manchester City last week, with a mixture of fresh Covid cases and injuries meaning The Magpies could only name eight substitutes on the bench.
After 16 days without a game due to a Covid outbreak, Ralf Rangnick made two changes from the team that snuck past Norwich City, with Mason Greenwood and Raphael Varane – back from a two-month spell on the sidelines – returning to the fold.
Buoyed on by a raucous St James' Park atmosphere, the hosts took a shock lead after just seven minutes into the game.
Sean Longstaff robbed Varane of the ball in the middle of the park, and Callum Wilson and Allan Saint-Maximin broke ahead of him. He looked left and set up Saint-Maximin, who cut inside and found the far-right corner of the net.
To say that Manchester United were sloppy in the opening exchanges would be an understatement, as the struggling Toon almost doubled their lead midway through the first half.
If a moment in this game was to personify The Red Devils' first half-an-hour, a mishit shot by Cristiano Ronaldo that then hit him in the face before going out of play was absolutely it.
And the visitors almost went two-nil down when Wilson turned and found the net, but the offside flag denied the hosts of a second goal.
It took Rangnick's side 41 minutes to have a meaningful attempt on the Newcastle goal, an attempt which was the last of the half.
A clever free-kick chipped over the top of the wall found Greenwood, but his shot was smothered by Dubravka, meaning The Magpies went into the break with the lead.
Cavani's strike ensures a share of the spoils
They almost – and should have – found themselves trailing by two, and they have their goalkeeper to thank for that not being the case.
Emil Krafth did excellently down the right-hand side as he tricked past two players before crossing low into an unmarked Saint-Maximin, but De Gea somehow kept him out from point-blank range as he scooped the ball away.
After that lucky escape, the visitors had a flurry of chances come that came to no avail – with Marcus Rashford's knuckleball effort from 25-yards notably forcing Dubravka into an acrobatic save.
Manchester United's frustrations were there for all to see in this game, and Ronaldo may count himself fortunate to not have been sent off after his very late challenge on Ryan Fraser was only deemed to be a bookable offence.
Fraser almost found himself on the scoresheet six minutes after that questionable Ronaldo booking, when Joelinton – who put in another man-of-the-match performance in his new midfield role – headed a counter attack before playing him in, but his near post effort was saved by De Gea.
The Spanish goalkeeper was called into action moments later, and this time he had to tip Saint-Maximin's effort around the post after he skinned his fellow Frenchman Varane on the edge of the penalty area.
Despite it looking likely that Newcastle were going to be the ones to find the next goal, Manchester United were the ones that scored 20 minutes from time, and it came from one of their substitutes.
Diogo Dalot found space down the right-hand side and swept the ball into the box towards Cavani, who with the first attempt found his shot blocked, but he was on his toes to find the net with the rebound.
But conceding that equaliser against the run of play did not dampen Newcastle's spirits, and it took some heroic goalkeeping from De Gea to deny The Magpies of all three points on 87 minutes.
First off, Jacob Murphy curled an effort from the left-hand side and it hit the inside of the post – it then fell out to Miguel Almiron whose strike looked destined for the top-corner of the net, but The Red Devils' number one managed to pluck the ball out of the air to safety.
This draw for Newcastle will look like a good result on paper, but they will feel they should have taken all three points – and they may just look back at this match as an opportunity missed come the end of the season.
It was a lucky escape for the visitors, but this should be a place they should be winning at, especially if they want to finish in the Premier League's top four this campaign.
Newcastle: Dubravka; Krafth, Lascelles, Schar, Manquillo; Fraser, Longstaff, Shelvey, Joelinton, Saint-Maximin; Wilson. (4-5-1)
Manchester United: De Gea; Dalot, Varane, Maguire, Telles; Fred, McTominay; Rashford, Fernandes; Greenwood, Ronaldo. (4-2-2-2)