England moved a step closer to the World Cup semi-finals after Jonny Bairstow’s 111 set up a crucial 31-run win over India in Birmingham on Sunday.
Eoin Morgan’s side posted 337-7 thanks to Bairstow and a dashing 79 from Ben Stokes.
Needing a record World Cup run chase to win, India finished on 306-5 as they were beaten for the first time in this year’s tournament.
England can book a semi-final berth if they beat New Zealand in their final league match on Wednesday, while India, who have two games left, must wait to confirm their last four spot.
Earlier, England left India with a stiff target of 338 and then removed opener K.L. Rahul for a duck when Chris Woakes held a caught and bowled chance.
Kohli duly completed his fifth successive fifty of the tournament and with Rohit Sharma, dropped on four, shared a second-wicket partnership of 138. But just as the duo were upping the run-rate, Kohli sliced recalled paceman Liam Plunkett to substitute fielder James Vince, deputising for Jason Roy, at backward point.
Rohit Sharma, however, should have been dismissed when he edged fast bowler Jofra Archer’s fourth ball, only for Joe Root to drop the regulation catch at second slip. Rohit finally fell to Chris Woakes after scoring a gritty century, his third of World Cup 2019.
Earlier, Jonny Bairstow hit a hundred and Stokes added a blistering 79 in England’s 337-7.
Bairstow made 111, while fellow opener Jason Roy more than justified his recall after missing three matches with a torn hamstring by making 66 in a first-wicket stand of 160 after England captain Eoin Morgan won the toss on a good pitch.