He finished ahead of fellow countryman Xabier Zandio, Eddy Mazzoleni of Italy and Austria's Cadel Evans. Pereiro finished Sunday's 15th stage in second place just behind American George Hincapie.
American Lance Armstrong ended in 36th place, 3 minutes, 24 seconds behind the leader. However, the six-time defending champion continues to wear the yellow jersey as the top rider with a 2-minute, 46-second lead over Italian Ivan Basso.
Denmark's Michael Rasmussen is in third place overall, 3 minutes, 9 seconds behind Armstrong, while Germany's Jan Ullrich is in fourth place, nearly 6 minutes back.
Should Armstrong continue 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. Hinault won the tour for the last time 20 years ago, marking the last Frenchman to have won the race.
Ray Liotta sues skin care company over use of likeness
Aaron Carter is still in love with Hilary Duff