It was a ninth straight win for the Selecao who top Group B with a perfect six points from two games, while Peru fell to the bottom.
There was little between the two sides in the first half but Brazil's greater quality made the difference after the break as talisman Neymar inspired them to an ultimately comfortable victory.
It took Brazil 10 minutes to get a shot on goal, and when they did it came from the unlikely boot of defensive midfielder Fred, who fired over.
A minute later the Selecao were in front as Everton's cross from the left skimmed off a Peru head and landed at the feet of Gabriel Jesus at the back post. The Manchester City forward picked out Alex Sandro arriving unmarked six yards out to fire home.
Fabinho was next to test his sights but fizzed a drive from 25 yards just wide.
It was a cagey affair, with Peru enjoying the greater possession but neither side really threatened again until the stroke of halftime when Alex Sandro shot over from the edge of the box.
Brazil run riot
After the break, Brazil continued to create the better chances as rightback Danilo got forward to lash a half-volley wide from the edge of the area.
Brazil thought they had a penalty on the hour mark when Neymar tumbled in the box under pressure from Renato Tapia, but as the Paris Saint-Germain star waited to take the spot kick, Argentine referee Patricio Loustau went over to check the pitchside monitor and reversed his decision.
Neymar didn't have to wait long for his chance to score, as Peru turned over possession in midfield on 68 minutes and Fred played the ball into the striker, who turned quickly to fire low past goalkeeper Pedro Gallese from 20 yards.
The hosts started to play with freedom and substitute Richarlison brought a fine save out of Gallese after he was set up by Neymar, who later shot wide.
Peru should have got back into it 12 minutes from time but Luis Abram and Alex Valera both contrived to miss an open goal from inside the six-yard box.
Neymar and substitute Roberto Firmino had chances to wrap up the win but the third goal finally came a minute from time as Richarlison teed up another substitute in Everton Ribeiro to tap home from six yards out.
And Richarlison got the goal his fine cameo deserved in stoppage time.