Chasing 177 for victory, Australia were in trouble at 96-5 when Stoinis (40) and Wade, who hit the winning six in his 41, put on 81 runs to finish off the match with one over to spare in Dubai.
Left-handed Wade was dropped by Hasan Ali on 21 and then smashed three straight sixes off Shaheen Shah Afridi in the 19th over to set up a title clash with New Zealand in Dubai on Sunday.
“It was a great game of cricket. The way Matthew Wade held his nerve was outstanding, that partnership with Marcus Stoinis was crucial,” said Australia captain Aaron Finch.
David Warner also played a major role with 49 before being caught behind off leg-spinner Shadab Khan who took four wickets.
“The way we started in the first half, we got the total we targeted,” said Pakistan skipper Babar Azam. “But we gave them too much of a chance at the end of the chase. If we had taken that catch, it might have made the difference.”
Australia suffered an early blow when Shaheen trapped Finch lbw for nought as the Pakistan-dominated crowd erupted.
The in-form Warner kept up the attack from one end with support from Mitchell Marsh.
But Shadab turned up the heat in the seventh over to get Marsh out for 28.
The leg-spinner struck in each of his four overs to claim the big wickets of Steve Smith, for five, Warner, and Glenn Maxwell, for seven as Australia lost half their side for 96.
Warner walked when he was caught behind after hitting three fours and three sixes in his 30-ball stay but replays later showed there was no contact off the batsman’s bat.
Stoinis and Wade steered the team to their second T20 World Cup semi-final and dream of a maiden title.
“When I got out there with Marcus, he was really confident we’d get them, even though I was a little unsure,” admitted Wade. “He found the boundaries early on, and I was happy to chip in at the end.”
Mohammad Rizwan, who top-scored with 67, and Fakhar Zaman, who hit an unbeaten 55 off 32 deliveries, put on 72 for the second wicket to help Pakistan to a 176-4 after being put into bat.
Rizwan’s opening stand of 71 with skipper Babar Azam, who made 39, unsettled the Australian bowling in the first six overs of powerplay.
Leg-spinner Adam Zampa broke the opening stand after sending back Babar, who has amassed 303 runs to lead the tournament’s batting chart, caught at long-on following his 34-ball knock laced with five fours.
Rizwan kept up the attack and smashed Zampa for a six to become the first player to aggregate 1,000 runs in T20 internationals in a calendar year.
He survived a hit on the helmet grill by a quick bouncer from Pat Cummins as the physio came in to conduct a concussion test with the batsman smiling.
A six and a single off pace bowler Josh Hazlewood brought up his fifty in 41 balls with Zaman at the other end before he exploded as well.
Rizwan finally fell to Mitchell Starc while trying to force the pace and was caught at mid-off, ending an attacking partnership that came in 46 balls.
Zaman finished off the innings with two sixes in the final over from Starc who took two wickets. (AFP)