Brooks made 111 as West Indies managed a lead of 90 after they were 277 all out in the second session of day two in the northern Indian city of Lucknow, which has been hit by heavy air pollution over the past month.
SCORECARD: Afghanistan vs West Indies
Spinners Rakheem Cornwall and Roston Chase then took three wickets each to leave Afghanistan tottering at 109 for seven at stumps on day two. The Afghans lead by just 19 runs in their second innings.
Opener Javed Ahmadi made 62 before falling to Chase’s off spin on the final delivery of the day dominated by West Indies, who resumed on 68 for two in response to Afghanistan’s 187.
Cornwall, the heaviest man in Test cricket — weighing 140 kilograms (308 pounds), and 1.96 metres (six feet five inches) tall — rattled the Afghanistan top-order and improved his match haul to 10 so far.
The 26-year-old Cornwall, who returned figures of 7-75 with his off spin on day one, struck in three successive overs.
He trapped Ibrahim Zadran for 23 after a brisk start by the Afghan openers and then got Rahmat Shah and Asghar Afghan back in the pavilion for scores of zero.
Chase also took three wickets in his three overs.
The air quality reading in Lucknow for PM 2.5 particles — the fine particles of dust that can penetrate lungs and pass into the bloodstream — was 275 microns per cubic metre, 11 times the World Health Organisation safe limit of 25.
But Brooks, who started the day on his overnight score of 19, seemed undaunted as he piled on the runs without getting much support from his fellow batsmen.
He was finally bowled by debutant spinner Amir Hamza who took five wickets.
Brooks was involved in two crucial partnerships including an 82-run third-wicket stand with overnight partner John Campbell, who made 55.
Brooks, playing just his third Test after making his debut against India in August, also put together 74 runs with Shane Dowrich, who made 42.
Amir combined with skipper Rashid Khan to mop up the tail as the umpires called for early tea. Rashid Khan claimed three wickets with his leg spin while left-arm wrist spinner Zahir Khan took two.