Charles made 130 after sharing in an opening partnership with Kieran Powell worth 168 while Bravo made eight off the final over - five from the final two balls - to reach an unbeaten 100, taking the West Indies to 337 for four.
The tourists had won the toss and elected to bowl, but it did them few favours as the West Indian top order dominated.
Charles' innings included four sixes and 12 fours before he was bowled by Chris Mpofu's yorker.
His was the second wicket to fall, and by the time it did the score was already on 248.
Powell went first for 79, again to Mpofu who bowled a short one to tempt the batsman into a pull shot that was caught by Craig Ervine at deep square leg.
Andre Russell soon followed Charles for just four as Natsai Mushangwe claimed a maiden international wicket, his full toss hit straight to Regis Chakabva.
While Darren Bravo was piling on runs at one end, half-brother Dwayne was struggling at the other and departed for nine when the stand-in skipper delivered another catch to Chakabva with a top-edge off Kyle Jarvis.
No matter for West Indies, however, as Darren Bravo kept on going.
Ramnaresh Sarwan finished unbeaten on seven, while Darren Bravo's ton came off just 71 balls with nine fours and four sixes.