The Australian paceman Marsh, 19, finished with four for25 as Pune restricted Deccan to 136 for eight before achieving the target with 10 balls to spare for their fourth win in 11 matches of the Twenty20 tournament.
Ganguly, the former India captain, who went unsold at the player auction before being signed up by Pune as a replacement for injured seamer Ashish Nehra, looked impressive during his 32-ball knock, hitting one six and three fours.
Opener Manish Pandey top-scored for Pune with 49, while New Zealander Jesse Ryder smashed a 20-ball 35 with the help of two sixes and five fours.
Both the teams are virtually out of contention for a place in the semi-finals, with Pune having secured eight points and Deccan six. Mumbai have already made sure of a place in the last four with 16 points.
Marsh, son of former Australian opener Geoff Marsh and younger brother of batsman Shaun, and left-arm spinner Yuvraj Singh were instrumental in restricting Deccan to a modest total.
Deccan made a strong start after electing to bat when Ravi Teja (30) and Shikhar Dhawan (24) put on 51 for the opening wicket before Yuvraj struck with his fourth delivery.
The spinner broke the stand when he bowled Dhawan before finishing with 2-17 off four overs. Marsh also got a wicket in his opening over when he bowled Teja before dismissing South African JP Duminy (30), Sunny Sohal and Amit Mishra in the space of five balls in his fourth and last over.
Deccan Chargers 136-8 in 20 overs (JP Duminy 30, R Teja 30, S Dhawan 24; M Marsh 4-25, Yuvraj Singh 2-17) lost to Pune Warriors 137-4 in 182 overs (M Pandey 49, J Ryder 35, S Ganguly 32 not out; D Christian 2-21) by six wickets