Kohli, who missed the first ODI against England with a mild groin strain, returned for the second match.
India bowled England out for 246, but lost an early wicket in the form of Rohit Sharma.
While Kohli started off strong, he lost Shikhar Dhawan and Rishabh Pant at the other end.
He then fell to Willey, who angled the ball across him. Trying to play on the front foot, Kohli followed the ball but only got an edge that Jos Buttler gleefully pouched behind the stumps.
Suryakumar Yadav and Hardik Pandya then stabilised India with a 42-run partnership, but the former fell for 27. Hardik and Ravindra Jadeja then went on to hit 29 each, but the lower order could not come up with any surprises as England emerged easy winners.
Reece Topley registered the best figures for an England bowler in ODIs, finishing with 6/24.