Ben Stokes smashed six boundaries and three sixes to lead the later charge with 79 from 54 as England, looking at a 400-plus total at one point, still managed to set India a record World Cup chase.
Not that it was always comfortable for England.
Kohli looked in typically superb form and shared a 138-run partnership with Rohit Sharma (102), who reached his century at a roughly run-a-ball rate and had hit 15 fours by that stage.
England moved back into fourth spot, one point ahead of Pakistan.
India remains second with a game in hand on its rivals but Kohli's team is no longer unbeaten.
For New Zealand it means they now must beat England on Wednesday night or if they lose, hope that Pakistan don't beat Bangladesh by enough to finish on a higher net run rate.