Dawid Malan had an lbw scare against Ashwin, up the pitch and just outside the line on impact, only to go the same way to Shami when the seamer pinned him from round the wicket.
Kohli's superb shepherding of the tail took some of the gloss off what was an otherwise impressive performance from the England attack, particularly during a thrilling afternoon session.
With that Kohli went into attack mode, his aggressive running almost bringing the end for Shami, who was well short of his ground as Anderson's throw from the deep whistled just past the stumps.
On the second day of the first Test, Sam Curran, the lone warrior of day one added two runs to the total of England as India bowled out the Three Lions on 287.
The 31-year-old Indian, who has taken 316 wickets from 58 Tests so far, had made a decision to work on his bowling action.
Ashwin was largely the reason why England, who were 216/3 at one point, were reduced to 285/9 by the time stumps were drawn in Birmingham on Wednesday.
The next session could well prove crucial, can England get deeper into the India batting lineup or can Kohli restore some calm? Last year, Ashwin picked up 20 wickets in four matches for Worcestershire in the County Championship.
Roseanne Barr says tweet "cost me everything"
Though after apologizing, Barr also offered Jarrett the advice, "She's gotta get a new haircut, I mean seriously". She said: "I hope you'll try to understand me and accept my apologies for my part in this big misunderstanding'".
He brought up his century off 172 balls, his 22nd in Test cricket and his fourth against England.
He dived to his left at gully in an attempt to catch Kohli off Anderson but the ball did not quite carry and appeared to clip his fingertip.
The India top order vs the England strike bowlers.
He claimed three wickets in eight balls as he found some movement.
But first-change Curran made it 50 for one in the 14th over when Vijay was lbw on review after missing a well-pitched-up inswinger.
However, England dropped too short when trying to dismiss a set Kohli, and their tactics of giving him easy singles when in partnership with number 10 Ishant and Umesh backfired.
James Anderson was England's most economical bowler with 41 runs off 22 overs while Curran bagged four wickets.
Malan spilled a regulation chance after Anderson located Kohli's outside edge, with the India captain on 21, and then, from the very next ball, Pandya nicked Stokes to first slip but Cook couldn't hold on as the ball swerved and dipped towards him.