Having resumed on 168 for two following on, still 228 shy of making their hosts bat again, Bravo (210no) led a superb rearguard, with able support from Narsingh Deonarine (52) and the lower-middle order, as the tourists closed on 443 for six.
That equated to a lead of 47, but New Zealand, who declared their first innings on 609 for nine, will still have high hopes of sewing up the win on day five.
The day certainly did not start in positive fashion for the Windies as Marlon Samuels was caught and bowled by Tim Southee in the fourth over of the morning.
When Shivnarine Chanderpaul was trapped lbw by Neil Wagner soon after to leave his side 185 for four it appeared they could roll over.
But Deonarine announced his arrival at the crease with a sweet boundary off Wagner and he proved an able ally to Bravo, who brought up his ton off his 200th delivery with a sweep for four off Ish Sodhi.
By lunch the pair had compiled 50 runs in a conservative but effective partnership, and they continued in similar fashion after the resumption.
An elegant drive from Bravo off Southee for four demonstrated the batsmen were now feeling comfortable, and when Deonarine was given a let-off thanks to a drop from Brendon McCullum, he added insult to injury by cracking another boundary.
Bravo stroked back-to-back fours off Wagner, before Deonarine drove to the boundary to pass 50, but he was out two overs later, caught behind off Corey Anderson to end a partnership of 122.
At tea, the West Indies still needed 82 to make the Black Caps bat again.
Bravo reached 150 in the first over of the evening, fittingly from the sort of cover drive that characterised his innings, then claimed back-to-back boundaries off Wagner.
Denesh Ramdin looked good until he was bowled through the gate by Sodhi, but that brought Darren Sammy to the crease, and the captain prospered.
He struck a succession of fours as his side edged into the lead, then launched two big sixes off Sodhi.
Bravo slowed as he neared 200, then reached the milestone with a rare false shot - edged past slip - but there was no doubting the quality of his innings.
By the close of play Bravo and Sammy (44no) had taken their partnership on to 80 as the game went - slightly unexpectedly - into a fifth day.