Gayle was in typically destructive form, blasting 17 fours and four sixes in his 150, his opening partner Powell struck 134 while half-centuries from both Assad Fudadin and Narsingh Deonarine carried the Windies to 442 for six and a lead of 91 at the close.
Gayle and Powell put on 254 for the first wicket - the fourth highest stand made by a Windies opening pair - and although both batsmen were dismissed in the afternoon session, their efforts put the hosts on course for a commanding first-innings lead.
Gayle and Powell added 100 runs in the morning, with the former marking his first Test in 18 months with a century, which came in the 57th over when he smeared Chris Martin over midwicket for six. Powell reached three figures after pulling a Neil Wagner short ball past square leg for four in the second over after lunch.
Gayle was continuing at a frenetic rate and brought up his 150 shortly after although he perished in the next over when he clubbed Kane Williamson to Brendon McCullum. Powell continued unabashed and hammered Wagner for three successive fours but he was dismissed off the fourth ball of the over when he edged a wide delivery behind.
Marlon Samuels hammered a six off Daniel Vettori to settle into his stride but he fell for 29 after lazily inside edging Chris Martin on to his stumps.
And when Shivnarine Chanderpaul gloved Martin behind eight balls later for a rare first-ball duck, it seemed the hosts were in danger of undoing all their good work with a lead of just four.
But Fudadin, in just his second Test match and batting at number three, struck two fours in four balls off Doug Bracewell and brought up his fifty with a single in the next over.
He perished for 55 when he failed to connect cleanly and was caught by a back-pedalling McCullum at deep mid-off as Williamson picked up his second wicket and Denesh Ramdin dragged Bracewell onto his stumps.
In between the two wickets, Deonarine thumped a six off Wagner over long-on and moved to his fifty in the penultimate over before clubbing Vettori over midwicket for four off the final ball of the day to move to 54 not out.