Pereiro finished ahead of fellow countryman Xabier Zandio, Italy's Eddy Mazzoleni and Austria's Cadel Evans. Pereiro, who is 15th overall, finished Sunday's 15th stage in second place behind American George Hincapie.
American Lance Armstrong ended in 36th place, three minutes, 24 seconds behind the leader. The six-time defending champion continues to hold the yellow jersey as the top rider with a two minute, 46 second lead over Italian Ivan Basso.
Denmark's Michael Rasmussen is third overall, three minutes, nine seconds behind Armstrong. Germany's Jan Ullrich is fourth, nearly six minutes back.
If Armstrong continues to lead the Tour after the 17th stage, he will receive his 79th yellow jersey, which would equal five-time winner Bernard Hinault of France.
Duggar sisters unveil Christian dating rules in new book
Beautician charged with giving client fatal silicone butt injection