Australia's middle-order crumbled as Tiwary took a career-best 5/34 to bundle out the hosts for 228 runs.
Ambati Rayudu (77), Kedar Jadhav (52) and Sanju Samson (49 not out) then made significant contribution with the bat as India A overhauled the target with 13 balls to spare.
The two teams will clash again in the final on Saturday by virtue of finishing on the top two spots in the round robin league system.
Spinner Akshar Patel broke the partnership by scalping Stoinis but Peter Nevill (23) provided good support to Hughes.
Also Read
Things changed dramatically when Tiwary dismissed Nevill in the first ball of the 29th over. Hughes and Nevill had added 48 runs for the second wickets when Tiwary had the latter stumped.
In a fiery spell, he went on to take five wickets and in the process reduced Australia A from 126 for 1 to 180 for 6.
Tiwary saw the back of rival captain Cameron White (7), Hughes, Tom Cooper (5) and Alex Doolan (16).
India A's start was shaky as they lost Manan Vohra (9), Robin Uthappa (13) and Tiwary (8) with scorecard reading 38 for three inside 13 overs.
Rayudu and Jadhav then resurrected the Indian innings with a 101-run stand for the fourth wicket. Jadhav smashed his way to 52 off 50 balls while while Rayudu scored 77 off 112 balls.
When Rayudu departed in thr 43rd over, India were just 37 runs away from victory. Samson remained unbeaten on 49 and completed the win in company of Parvez Rasool (20 not out).
India A 231/5 in 47.5 overs (Ambati Rayudu 77, Kedar Jadhav 52, Sanju Samson 49). India A won by 5 wickets.
Final: India A vs Australia A.