Electing to field first on winning the toss, Pune dismissed the visitors for 161 runs in 19.5 overs but chasing the target, initially made heavy weather of their chase before reaching it with one ball left.
Stokes played a starring role, plundering 103 runs off just 63 balls producing seven boundaries and six hits into the stands along the way.
Pacers Basil Thampi and Pradeep Sangwan bowled well for the visitors, returning figures of 2/35 and 2/38 respectively.
Young leg-spinner Ankit Soni also bowled well, conceding just 16 runs in his four overs although he was unlucky not to get a wicket.
Pune were off to a shaky start, losing three wickets in the first two overs.
Sangwan struck the first blows for Gujarat, sending back Ajinkya Rahane and Steven Smith in the opening over, while Thampi trapped Manoj Tiwary leg before in the next over with a faster delivery pitched on a fuller length, which surprised the right-hander by the extra pace.
Rahul Tripathy and Stokes then got together and attempted to bring the innings back on track with a 32-run stand which came off 24 balls.
But the partnership was broken thanks to an accurate direct hit by Aaron Finch which caught Tripathy short of the his crease.
Stokes had pushed a James Faulkner delivery towards long-on and completed the first run comfortably. But attempting a second run proved to be disastrous as Finch produced some superb fielding to hit the stumps at the non-striker's end.
Stokes was then involved in another crucial stand with Mahendra Singh Dhoni as the duo added 76 runs between them off 64 balls to take Pune to a comfortable position.
Thampi brought the partnership to an end with a back of the hand slower ball which Dhoni hit into the hands of Brendon McCullum at long-off.
However, Daniel Christian joined Stokes in the middle and the duo proceeded to carry Pune across the line.
Pune thus bolstered their claim to a play-off spot, as they strengthened their grip on the fourth spot with 12 points from 10 matches.
Gujarat are at the sixth place on the eight-team table with six points from 10 matches.
Earlier, leg-spinner Imran Tahir (3/27) and medium pacer Jaydev Unadkat (3/29) starred for Pune as they bowled out Gujarat Lions for a moderate total.
Gujarat got a very good start, with McCullum (45) and Ishan Kishan (31) putting up a 55-run stand for the opening wicket in six overs.
But Tahir's smart bowling, coupled with some reckless batting from the visitors, meant that Gujarat needed Dinesh Karthik's damage control effort of 29 to reach 161.
Jharkhand teenager Ishan was particularly impressive, showing his stroke-making skills after a quiet first three overs. McCullum too matched him shot-by-shot.
Tahir broke the stand as Ishan was caught by Washington Sundar at short third man. Suresh Raina (8) too perished soon, falling short of attempting a double of his own batting as Ajinkya Rahane threw to wicket-keeper Dhoni to get rid of the visiting captain, with Gujarat at 71/2 in eight overs.
South African Tahir continued his fine bowling as he sent back Aaron Finch and Dwayne Smith in successive deliveries in the 10th over, as Gujarat were reduced to 94/4. While Finch gave a return catch, Smith was undone by a googly as he swung his bat.
McCullum, who saw all the wickets crumbling in front of him, was the next one to go, after being caught by Rahane at extra cover off Shardul Thakur's bowling, as Gujarat lost their fifth wicket for 109 in 11.5 overs. It was a reckless shot from the New Zealander, who should not have taken the risk at that point of time.
Later, Karthik and Ravindra Jadeja (19 off 12) tried their best to take Gujarat past 160.
Unadkat's three-wicket haul at the death ensured that Pune kept things under control as the left-armer accounted for Jadeja, James Faulkner (6) and Pradeep Sangwan (1).