Brazil, who have 21 points from 12 games, moved up to second in the South American group and cut the gap between themselves and leaders Paraguay to three points. Peru, with seven points, went five adrift at the bottom of the ten-team table and have no realistic hope of ending their 24-year wait for a FIFA World Cup finals appearance.
Their dismal form comes as coach Jose del Solar has controversially refused to pick German-based strikers Claudio Pizarro and Jefferson Farfan because of alleged indiscipline nearly 18 months ago. Brazil had drawn their previous three home qualifiers 0-0 - against Argentina, Bolivia and Colombia - but this time got the early breakthrough they needed.
Kaka, who missed Sunday's 1-1 draw in Ecuador through injury, was fouled by Carlos Zambrano and Luis Fabiano placed his penalty just beyond Leao Butron's outstretched arm to open the scoring in the 18th minute. After that, it was a question of how many Brazil would score.
The second came nine minutes later when Elano chipped the ball over the Peru defence and Luis Fabiano chested it down and scored despite not hitting the ball cleanly. Butron prevented Brazil from adding a third before half-time when he denied Robinho with his feet after the hosts sliced through the Peru defence, then saved a powerful drive by Daniel Alves.
Luis Fabiano was denied a hat-trick when Butron tipped over his header on the hour. But midfielder Felipe Melo added the third four minutes later when he won two challenges in midfield, burst into the area and placed his shot between Butron and the near post.
Brazil goalkeeper Julio Cesar, who almost single-handedly earned Brazil their draw on Sunday, prevented Peru from scoring when he tipped Alexander Sanchez's drive onto the crossbar.