While Bairstow was unquestionably impressive in compiling his 124, Stokes' 99 came at a blistering pace, requiring just 52 balls as he bludgeoned 10 sixes.
India had set England 337 to win and level the three-match series, with the tourists – deprived of the injured Eoin Morgan's services – wasting little time, getting the job done with 39 balls to spare.
Bairstow and Jason Roy put on 110 for the first wicket to lay the foundations, with the former then enjoying a front-row seat for the Stokes show as they combined for 175 runs.
It meant that, by the time Stokes and Bairstow fell in consecutive overs, England only required another 50 to seal the win, with Dawid Malan and Liam Livingstone finishing things off.
GET IN! How good was that?!
Scorecard: https://t.co/UJ4H2TsbXcMarch 26, 2021
All the fireworks in England's innings eclipsed what had been a solid 50 overs from the hosts, for whom KL Rahul top-scored on 108, with Rishabh Pant providing eye-catching entertainment in the form of a 40-ball 77 to help India to 336-6.
Having put themselves in a strong position to chase down 318 in the first match before collapsing to 251 all out, England made sure they had an even firmer footing this time to ensure a late-innings wobble would not prove pivotal.
Bairstow's 18 boundaries included seven maximums, with Roy's 55 coming at roughly a run a ball to further cement England's excellent start.
Stokes, having survived an early run-out scare, escalated things drastically with a display of explosive hitting that had India chasing their tails.
Krunal Pandya, who enjoyed such a fine debut in the opening clash, came in for particularly harsh punishment as he posted figures of 0-72 off six overs, while Kuldeep Yadav (0-84 off 10) conceded eight sixes, including three in a row at the hands of Stokes in a punishing 33rd over.
England's procession was slowed but not halted by a flurry of wickets across the 36th and 37th overs, with Stokes agonisingly falling short of a deserved century before Bairstow and Jos Buttler also had to go.
But it only delayed the inevitable, Malan and Livingstone steadying the ship and getting England across the line to set up a series decider on Sunday.
STOKES CAPITALISES ON LET-OFF
There was a mightily close run-out call against Stokes in the 26th over, when he was on 33.
He soon accelerated his knock at break-neck speed, having brought up his 50 off 40 deliveries before adding another 49 from only 12.
Stokes' dismissal, caught behind by Pant off Bhuvneshwar Kumar, saw him denied the third-fastest century in ODIs for England.
That was simply sensational
Scorecard: https://t.co/yBG14B86u6March 26, 2021
SERIES SET FOR FINALE IT DESERVES
This was a mouthwatering series on paper, pitting the world's best two one-day teams against one another, and it has delivered on the field across the first two matches.
World champions England flexed their muscles on Friday, having been chastened by an opening loss in which India showed why they are so highly fancied.
A winner will be crowned this weekend and, having seen the best of both sides, how fitting it would be if they could each bring their 'A' game on Sunday.