Jadon Sancho's third strike of the summer and a Matty Cash own goal had put United 2-0 up at half-time. Leon Bailey pulled one back after half-time but Erik ten Hag's side still looked on course to record their fourth victory in a row before Calum Chambers scored with a header in the final seconds.
After heavy rain in Perth, the game was only given the go ahead three hours before kickoff following an inspection.
- De Gea talks to ESPN about Ten Hag, last season's 'disaster'
- Grading top European clubs' signings: Eriksen to Man Utd?
- Marcotti: Why Ronaldo should leave United to join Real Madrid
- Don't have ESPN? Get instant access
The pitch, used by Leeds and Crystal Palace 24 hours earlier, made it hard for players to keep their footing but United still dominated the opening half thanks largely to another impressive performance from Ten Hag's front three of Sancho, Anthony Martial and Marcus Rashford.
Harry Maguire, given a much warmer reception here than he received in Melbourne, went close with an early header which was brilliantly saved by Emiliano Martinez before Sancho had the Villa keeper diving low to his left after carrying the ball from 40 yards out.
Martinez was finally beaten after 25 minutes.
Rashford held the ball on the left, waited for Luke Shaw's overlapping run and Sancho volleyed in the cross from six yards out. The pitch was only made worse by a deluge of rain midway through the first half but by the time the half-time whistle blew, United had increased their lead.
Sancho escaped down the right and crossed for Rashford, whose finish hit Cash and looped into the net.
Ten Hag kept the same XI on the pitch for the start of the second half but it was Villa who made the better start.
Barely five minutes had passed when Bailey, on a half-time substitute, ran at United's defence, cut inside Victor Lindelof and curled a shot around Maguire and into the bottom corner.
It looked like only being a consolation for Villa after a largely uneventful second half but in the second minute of stoppage time Chambers got up highest to head in a corner from the right.
It means United end their tour with three wins and a draw from their four games after victories over Liverpool, Melbourne Victory and Crystal Palace.
The squad are due to arrive back in Manchester on Sunday ahead of their next friendly against Atletico Madrid in Oslo on Saturday.