India were 307 for six after losing the toss at stumps on the first day of the third Test against England at Trent Bridge on Saturday.
James Anderson took his 100th Test wicket against India when he had Hardik Pandya (18) caught at second slip by Jos Buttler off what became the last ball of the day.
Test debutant Rishabh Pant was 22 not out, with Chris Woakes taking three for 75 in 20 overs.
India had been in trouble at 82 for three on the stroke of lunch before a stand of 159 between Kohli and Ajinkya Rahane (81) revived their fortunes.
England lead this five-match series 2-0.