On a slow track, the home team bowlers maintained a disciplined line and length only to face resistance from England's wicketkeeper-batsman, who forged couple of important partnerships -- 57 for the fifth wicket with Ben Stokes and 69 for the sixth wicket with comeback-man Jos Buttler (43).
With the Mohali track not among the most batting-friendly pitches, Bairstow showed steely temperament and admirable technique against India's spin trio and faced 177 balls hitting six fours in the process.
A well-deserved century was denied when Jayant Yadav (2/49 in 15 overs) flighted one that had turn and drift to find him leg before.
Umesh Yadav (2/58 in 16 overs), who bowled a lethal delivery first up to remove opener Haseeb Hamid (9), delivered a beauty with the second new ball to get rid of Chris Woakes (25 off 70 balls).
The stodgy Woakes also provided some support to Bairstow and the duo added 45 runs for the seventh wicket.
Ravichandran Ashwin (1/43 in 18 overs), Mohammed Shami (1/52) and Ravindra Jadeja (2/56 in 21 overs) were the other wicket-takers for the home team.
Bairstow, who has been England's top run-getter in Test cricket in the past one year, mixed caution with occasional aggression en route his 13th half-century in Test cricket.
He reached for the pitch of the deliveries to hit three cover drives, rocked on the backfoot to strike a cut shot. Bairstow was also not afraid to play the paddle sweep when spinners decided to bowl the fuller length.
The post lunch to tea session proved to be productive for England as they scored 113 runs losing only one wicket. It was more due to the comfort that Buttler displayed while facing the spinners as his 43 off 80 balls had five boundaries.
However, England went into the final session with Bairstow suddenly getting into the shell and that increased pressure on Buttler to up the ante.
He misjudged the length of a flighted delivery from Jadeja and Indian skipper Kohli took a fine low catch diving at mid-off.
India pressed hard in the final session and the defensive mindset again led to England's downfall as only 63 runs came off 28 overs. For India, however, the session yielded three wickets.
In all, save the wickets taken by Umesh, the others were a result of bad shots and pressure that visitors put on themselves.
(REOPENS DEL 15)
Earlier, a disciplined bowling effort coupled with atrocious shot selection enabled India to blow away the English top-order in the first session.
Despite some fielding errors, the hosts managed to get rid of skipper Alastair Cook (27), young Haseeb Hameed (9), batting mainstay Joe Root (15) and Moeen Ali (16) in the morning session after the visitors elected to bat.
While the pitch is not the easiest one to bat, barring Hameed, who got out to a good delivery, skipper Cook and the talented Root should be cursing themselves for the poor shots that they played.
Umesh bowled at a brisk pace and young Hameed started confidently as he was again playing his patient game for the first 30 balls.
The final delivery of the 10th over saw Umesh pitch one on three quarter length. The ball reared up awkwardly leaving Hameed in no position as it hit the gloves and Ajinkya Rahane standing at gully took the easiest of catches.
Cook was showing positive intent as he smashed six boundaries in his 27. Shami should consider himself unlucky as Cook was dropped on 3 by Ravindra Jadeja at third slip.
Cook flashed it hard and the ball flew even before Jadeja could react. It was a reflex catch but it was a chance that was missed.
On 23, it was an easier one when Cook flicked straight to Ashwin standing at mid-wicket but the ball popped out off his palms.
It was a regulation catch that went abegging. As if to punish Shami, Cook pulled the next delivery for a boundary.
It took Jayant Yadav seven balls to get a breakthrough as it was more about Root's indiscretion. Yadav bowled an off-break slightly short of length as Root instinctively committed to play a pull shot.
He was yet to get his eye in before trying a wild shot across the line. He missed it and was caught plumb in-front.
The scoreboard which read 51 for 2 got worse as Ashwin made amends for his fielding error. It was another shortish off-break and unlike Root who went for the pull, Cook went for the cut shot.
The shot was on but the execution went awry with his faint edge being taken by an ecstatic Patel behind the stumps.
But it was astute captaincy from Kohli that led to Moeen's downfall. Knowing his weakness against short ball, Kohli positioned a single man Murali Vijay at fine leg boundary.
Shami bowled a lovely short pitched delivery that climbed on Moeen who went for the hook shot and Vijay gleefully accepted the catch. In the end, it was a plan well executed.