With Brazil, Argentina, Ecuador and Uruguay already qualified, all that was to play for in the final round of South American qualifying was fifth place and an intercontinental play-off.
Both Colombia, who won 1-0 away to Venezuela, and Chile, beaten 2-0 at home by Uruguay, could have qualified with victory had Peru slipped up.
But for the second World Cup qualification campaign in a row, Peru head into a play-off.
Last time they beat New Zealand 2-0 over two legs but their task will be harder this time with a one-off clash against either the Socceroos or UAE in Qatar in June.
Italy-born Gianluca Lapadula opened the scoring on five minutes in Lima and although debutant Sebastian Ferreira hit the bar soon after for Paraguay, Peru were largely in control.
Yoshimar Yotun doubled the advantage on 42 minutes, acrobatically converting a cross from Edison Flores.
It could have been more comfortable for Peru but Lapadula was twice denied by the woodwork.
Colombia missed out on the play-off by a single point.
Halfway through the qualification campaign they had been in a strong position to qualify but a run of seven straight games without a goal before winning their final two matches crushed their hopes.
James Rodriguez scored the only goal deep into first half stoppage time from the penalty spot after Ronald Hernandez was penalised for a foul on Rafael Borre.
Chile struggled throughout the campaign and missed out on the World Cup for the second tournament in a row.
They needed both Peru and Colombia to fail to win while winning themselves to progress.
But spectacular goals from Luis Suarez and Federico Valverde left them heart-broken and lifted Uruguay into third in the group.
Brazil set a new points record for a South American World Cup qualification campaign with a 4-0 win away to Bolivia.
The Selecao's record of 14 wins and three draws -- with a rearranged fixture at home to Argentina still to play -- leaves them with 45 points, two more than Marcelo Bielsa's Argentina managed ahead of the 2002 tournament.
In a match between the best attack and worst defence in the competition, Brazil's comfortable victory even without the suspended Neymar was no surprise.
Luca Paqueta opened the scoring on 24 minutes while a double from Richarlison and another from Bruno Guimaraes sealed the drubbing.
Argentina stretched their unbeaten run to 31 matches with a 1-1 draw away to Ecuador.
Julian Alvarez opened the scoring for Argentina at the second attempt against the run of play on 24 minutes but Enner Valencia scored in stoppage time, slamming home the rebound after his penalty was saved by goalkeeper Geronimo Rulli.