United playmaker Shinji Kagawa was taking on his former employers and revelled in the hole role behind Robin van Persie and Danny Welbeck.
The hosts took the lead on 34 minutes when Chris Smalling’s defensive error created a chance for Kenyu Sugimoto, who finished it clinically, rolling the ball past a wrong-footed Anders Lindegaard into the net.
Kagawa spurned the chance for an equaliser on 53 minutes when Jin-Hyeon Kim dived to his right to save his penalty, which was awarded after Ashley Young was sent tumbling in the 18-yard box.
But the former Borussia Dortmund man made amends a minute later, latching onto Ryan Giggs’ cross from the left, swivelling and beating goalkeeper Kim with a low left-footed strike.
The hosts went ahead again on 63 minutes when 18-year-old forward Takumi Minamino sent a 20-yard piledriver into the top of the net, giving Lindegaard no chance at all.
But in the dying seconds, Zaha spared United’s blushes when he put the icing on the cake to a flowing move by tapping home from close range.
United set off with clear intent and the lively van Persie brought a sharp save out of Kim inside the first minute.
The Dutchman had recovered from the thigh problem that forced his precautionary withdrawal in Yokohama on Tuesday and was denied by Kim once more, before Phil Jones sent his diving header over the bar.
In conditions so hot and sticky it was decided to take a drinks break midway through both halves, and Osaka were starting to get into their stride.
Lindegaard had already made two good saves when Cunha Edno sent his header straight at the Dane from point-blank range, when a foot either side would have seen the hosts go ahead.
They did not have to wait long, though, as a woeful error on the edge of his own box by Smalling gifted an opportunity to Sugimoto, which the 20-year-old drilled into the bottom corner.
Kagawa’s first embarrassing blunder came not long afterwards.
Under normal circumstances, van Persie would surely have gone for goal himself as the loose ball fell to him after Welbeck had fired against a post. Instead, he squared unselfishly towards the player who has been feted at every turn since his arrival on tour on Monday.
Unbelievably, Kagawa screwed his shot high over the bar, the groans from a capacity crowd underlining the disappointment.
United continued to press and Giggs curled an effort narrowly over before Welbeck came close once more.
Kagawa then saw another chance go awry. After Ashley Young had been brought down, van Persie stood aside to let the Japan international take the penalty, but he spurned that opportunity too as Kim made a decent low save.
There was an element of relief and embarrassment about his celebration when Kagawa eventually scored, from a Giggs cross, and he was replaced by Zaha not long afterwards.
Cerezo were not inhibited by that setback, though, and Minamino put them back in front with a superb shot from the edge of the area that arrowed into the top corner.
United almost conceded a third as Lindegaard was forced into a fine fingertip save to deny Yusuke Maruhashi.
But the Premier League champions kept going until the final minute and were rewarded when Anderson crossed for Zaha, one of those to impress on this three-week trip so far, to finish from close range.