Rennes midfielder Flavien Tait opened the scoring in the third minute with a header into the bottom left corner after being set up by defender Hamari Traore.
The home side's lead lasted only nine minutes, with Monaco midfielder Aleksandr Golovin finding defender Vanderson in the box and the Brazilian fired into the far corner of the net with a first-time shot.
Monaco took the lead in the 58th minute when Germany's Kevin Volland set up Ben Yedder with a perfect header and the striker made no mistake scoring his 19th goal of the season.
Boadu secured a fourth straight victory for Monaco after he rifled the ball from close range to make it 3-1 in the 77th minute before striker Martin Terrier converted a late penalty for Rennes in stoppage time.
Monaco are fourth with 53 points from 32 games, three points behind third-placed Rennes and one ahead of Racing Strasbourg, who have a game in hand.