The Swedes failed to find the net in Stockholm against Denmark last Saturday, and once again they struggled in front of goal as Sebastian Larsson celebrated his 100th cap by captaining Janne Andersson’s side.
Seeking to hit the home side on the break, Peru had the best of the chances in the opening 45 minutes but Viktor Claesson almost put Sweden ahead just before the break with a superb scissor-kick.
With Paolo Guerrero leading the line, the Peruvians countered with speed, quickly changing the point of attack when they won the ball as they broke forward in numbers.
The Swedes suffered a scare midway through the second half as first-choice goalkeeper Robin Olsen, who missed most of the spring due to a broken collar bone, landed heavily, but after treatment he was able to continue.
Andersson will have been happy to see injury-plagued midfielder Albin Ekdal’s fine passing display, but it was Peru’s Ricardo Gareca who was by far the happier of the two coaches at the final whistle.
Sweden kick off their World Cup in Russia against South Korea on June 18 before going on to meet Germany and Mexico in Group F.
Peru begin their Group C campaign against Sweden’s Nordic neighbours Denmark on June 16 before going on to meet France and Australia.