It was a brilliant knock by Rahul as he started cautiously, hitting only four boundaries in his fifty before opening up to hammer three fours and a six as he used all his experience to help India extricate themselves from a sticky situation.
Rahul (75 not out off 91 balls) raised 108 runs for the unbroken sixth wicket partnership with Ravindra Jadeja (45 not out off 69 balls) after adding 44 runs for the fifth wicket stand with stand-in captain Hardik Pandya as India scored 191/5 in 39.5 overs after Shami (3-17) and Siraj (3-29) bowled brilliant second spells as Australia were bundled out for 188 in 35.4 overs.
With the wicket offering help to the seam bowlers thanks to an even cover of green, batting looked difficult except for Australia's Mitchell Starc (81 off 65 -- 10 x 4, 5 x 6), Rahul and Jadeja.
After the Australian pace duo of Mitchell Starc (3-49) and Marcus Stoinis (2-27) had reduced India to 16/3 and then 83/5 after Pandya was out for 25, Rahul and Jadeja came together to rescue India from a precarious position and take them to a memorable victory.
It was not the usual Wankhede wicket and offered movement off the seam to the bowlers and the bowlers held the upper hand barring the magnificent 65-ball 81 by Australia's makeshift opener Mitchell Marsh and the controlled knocks by Rahul and Jadeja.
India made a disastrous start as they lost their first three wickets with just 16 runs on the board -- Ishan Kishan (3), Virat Kohli (4) and Suryakumar Yadav (0) getting trapped leg before as the ball moved around.
Shubman Gill stayed at the wicket for 31 balls and scored 20 runs but failed to adapt to the conditions becoming Starc's third victim, handing Marnus Labuschagne an easy catch.
Two middle-order partnerships then revived India -- both involving Rahul, who has been under pressure recently due to his poor form, losing his vice-captaincy and place in Test playing eleven. Rahul was the star of the day for India and produced a knock of superb quality. He started cautiously initially, getting used to the swing as the Aussie bowlers led by Starc threatened to being an early end to the Indian innings.
Rahul and skipper Hardik Pandya came together to raise 44 runs off 55 deliveries for the fifth wicket. Rahul played the waiting game while Pandya (25 off 31 balls) went for his shots, hitting the first six of the Indian innings off Cameron Green besides a four each off him, Starc and Sean Abbott before becoming Stoinis' second victim of the day, rushing into a hook shot off a bouncer that nipped in to cramp him for space.
Rahul then figured in the most crucial partnership of the Indian innings -- a half-century partnership for the sixth wicket with Jadeja as India, who were lagging in comparison to Australia at the end of 28 overs at 114/5 to the visitors' 169/5, fought back brilliantly.
Rahul completed his half-century in 71 deliveries, opening up later as he hammered Adam Zampa for a four and a six in the 36th over. He had reprieves when a couple of outside edges did not carry and was also beaten on a few occasions but kept building his innings, hitting four boundaries in his fifty. He celebrated it by hitting two fours and a six but raised most of his runs through singles.
Earlier, Shami claimed three wickets in a superb spell of seam bowling -- sending down a couple of maiden overs while Siraj struck two wickets from the other end as India came back brilliantly after being smashed around by make-shift opener Mitchell Marsh (81 off 65) after being inserted in to bat by Hardik.
Jadeja, playing his first ODI after an injury break, claimed two wickets for 46 as India made the most of their chances after they got rid of Marsh, who figured in two half-century partnerships at the top. Marsh hammered 70 of his 81 runs in boundaries as he gave Australia a brilliant start.
Marsh thrived on a difficult pitch that offered some assistance to the bowlers, hitting a 65-ball 81 during which he hammered 10 boundaries and five sixes. Marsh was sent in as an opener in place of David Warner, who was left out as he has not fully recovered from the elbow injury he suffered during the preceding Test series.
Marsh struck Siraj for three boundaries off five deliveries in the fourth over -- the first over covers, then a backfoot punch between cover and point and the third over mid-off on a slightly fuller delivery. He lived a charmed life in the middle, was beaten on more than a couple of overs but struck both two more boundaries off Siraj in the eighth over before hoicking Shardul Thakur over his head for his first six, hitting Hardik for two sixes, the second a big one off a slightly short of a length delivery in 15th over.
He hammered Kuldeep Yadav for two boundaries in the 17th over -- the second one bringing his half-century in 51 balls.
But his departure caused Australia's downfall as the lower order failed to come to terms with the conditions and Australia slumped from 169/5 to 188 all out in the 36th over.
Also Read: Shami, Siraj's fiery bowling help India bundle out Australia for 188 in 1st ODI
Australia will now hope for a better batting performance in the second match in Visakhapatnam on March 19.
Australia 188 all out in 35.4 overs (Mitchell Marsh 81, Steve Smith 22; Mohammed Shami 3-17, Mohd Siraj 3-29) lost to India 191/5 in 39.5 overs (KL Rahul 75 not out, Ravindra Jadeja 45 not out, Hardik Pandya 25; Mitchell Starc 3-49, Marcus Stoinis 2-27) by five wickets.