Christian Cueva scored a first-half penalty at the Estadio Nacional de Lima, where the host started well but struggled to create clear-cut chances.
But it was far more dominant in the second half, particularly after Jefferson Farfan doubled its lead.
While it was unable to claim a more comprehensive win, Peru recorded its fourth straight victory as it looks ahead to its first FIFA World Cup appearance in 36 years.
Without its suspended star and all-time leading goalscorer Paolo Guerrero, Peru started a strong side, including Farfan.
An understrength Scotland had four debutants – Jordan Archer, Lewis Stevenson, Stephen O'Donnell and Dylan McGeouch – in their starting XI.
Playing in front of its home fans for the last time before the FIFA World Cup, Peru – which will face France, Australia and Denmark in Russia – was in control in the opening stages.
Cueva was the first to threaten, his 35-yard free-kick pushed away by Scotland goalkeeper Archer in the sixth minute.
After being put under early pressure, Scotland settled into the encounter, pushing Peru back as the first half wore on, although most of its chances came from set-pieces.
Some sloppy defending gave Peru an opportunity on the half-hour mark, but Farfan's strike from inside the area lacked the power to trouble Archer.
But the host took the lead before half-time after a Scott McKenna handball gifted them a chance from the penalty spot.
Cueva made no mistake with his spot-kick, drilling an effort into the bottom corner to make it 1-0.
Peru doubled its lead early in the second half through Farfan.
Yoshimar Yotun was released down the left before picking out the 33-year-old forward, whose strike proved too powerful for Archer to handle.
The goal was Farfan's 25th for Peru, moving him into outright third for most strikes for the nation.
It also appeared to settle his team, which was in complete control from that point on, although it was unable to extend its advantage.