While Shikhar Dhawan top-scored for India, Krunal blasted a 26-ball fifty - the fastest by a debutant in ODIs.
Shikhar Dhawan and Indian captain Virat Kohli (56 from 60) were involved in a second-wicket stand of 105 to put India in command.
A flurry of wickets, though, saw India lose their way before an enterprising sixth-wicket stand of 112 between KL Rahul and Krunal saw India claw back.
Rahul and Pandya joined forces when India were 205 for 5 in the 41st over. The debutant displayed his big-hitting range from the word go.
After smashing Sam Curran for three fours in an over, he proceeded to hammer Mark Wood and Tom Curran for sixes as India raced away in the slog overs.
21 came off the 48th over bowled by Wood as Krunal went berserk. He raced to his fifty, and paid tribute to his late father by pointing his bat towards the heavens.
Rahul was more subdued in comparison, getting to 50 off 39 balls, but he too hit four sixes. Krunal finished unbeaten on 58 from 31 (seven fours, two sixes) while Rahul returned unconquered on 62 from 43.
Shikhar Dhawan rides his ruck
Earlier, Shikhar Dhawan was dropped twice and rode his luck. The first was a difficult chance in the eighth over. The left-hander, on 16, cut one uppishly from Sam Curran to point. Jason Roy flew to his left, but could not latch on.
The second was a regulation one. Shikhar Dhawan was on 59 when he dragged one from Adil Rashid straight to Moeen Ali at deep midwicket, who made a mess of the chance.
Aside from the two lives, Shikhar Dhawan looked in good touch. India got off to a slow start. They were 15 for no loss after five overs. The southpaw began the momentum shift, cutting and driving Mark Wood for consecutive boundaries in the seventh over.
Rohit Sharma also hit a couple of gorgeous fours off Wood. His innings, though, came to a disappointing end. On 28, Sharma edged a short and wide delivery from Ben Stokes behind the stumps.
However, the Shikhar Dhawan-Kohli partnership put India in command. Both the batsmen were extremely severe on the spinners.
Shikhar Dhawan brought up his fifty by slog-sweeping Rashid for six to the left of long-on. Kohli found it slightly difficult to pick Rashid early on. But in the same over, he too belted one down the ground for four to announce his intentions.
Kohli and Shikhar Dhawan enjoyed themselves against Moeen Ali. Having just dropped the Indian opener, Moeen was hammered for a six over extra cover and a four past fine leg. This came after a misfield off the first ball from Stokes gifted India a boundary.
Kohli brought up yet another fifty, driving Rashid to sweeper cover for a single. However, he uncharacteristically gave his wicket away on 56, whipping Wood straight to Moeen, who made no mistake this time.
The Indian captain’s wicket was soon followed by Shreyas Iyer’s (6), who lofted Wood to deep cover. Shikhar Dhawan hit a couple more cracking boundaries. But on 98, he pulled a short ball from Stokes to Eoin Morgan at midwicket.
Stokes dealt India another major blow, having Hardik Pandya caught at slip for 1. England were back in the game at 205 for 5 but Krunal and Rahul’s counter-attacking partnership lifted India to a score of 317.