He played with Defensor in Uruguay, joining Benfica in 2007 and going on to remain with the club for eight seasons, appearing in 333 official games and winning eleven major titles.
A Uruguayan international on more than 120 occasions, Pereira represented the nation in two World Cups and four Copa América tournaments, winning the 2011 edition of the latter tournament.
Born in Montevideo, Pereira started playing professionally with Defensor Sporting as an 18-year-old, early in the 2002–03 season. He took no time to adjust to the first team, being a crucial part alongside Álvaro González and scoring a career-best 12 goals in the Primera División of 2005–06.
After the 2006–07 campaign, Defensor lost both gems as González was transferred to Boca Juniors and Pereira went to S.L. Benfica, accompanied by countryman Cristian Rodríguez; the latter club signed the player for €3 million and 70% of his rights.
In his first year in Portugal, Pereira was initially played as a right midfielder, failing to adjust to that position. He did score in two consecutive home games in November 2007, in a 6–1 league thrashing of Boavista F.C. and in the season's UEFA Champions League 1–1 draw against A.C. Milan, where he netted with his left foot from outside the box.
The following campaign, Pereira switched to right-back after Nélson Marcos moved to Real Betis, and became an everpresent fixture during their campaign. In 2009–10, as Benfica won the league after five years – adding the Taça da Liga – he appeared in a total of 40 matches, scoring five goals in 2,932 minutes of action.
On 17 December 2011, Pereira renewed his contract until 2015 and the club paid €2.7 million for the remaining 30% of his rights, still in possession of Defensor. He netted two goals in the 2011–12 Champions League, both coming against FC Zenit Saint Petersburg in the round-of-16 (2–3 away loss, 2–0 home win, both through tap-ins) as his team eventually reached the quarter-finals of the competition, where he was sent off in the first half of the second leg against Chelsea after two bookable offenses (1–1 away draw, 1–2 aggregate loss).
On 2 October 2014, Pereira reached the 300-game milestone at Benfica, in a Champions League match against Bayer 04 Leverkusen, becoming the second foreigner behind Luisão to achieve this feat. On 2 May of the following year, he scored twice in a 5–0 win at Gil Vicente FC, contributing with a further three goals as the team renewed their domestic supremacy.
On 30 June 2015, Pereira left Benfica following the expiration of his contract. Fifteen days later, he joined rivals FC Porto as a replacement for Real Madrid-bound Danilo. His competitive debut occurred on 15 August, in a 3–0 home win against Vitória S.C. where he provided two assists for teammates Vincent Aboubakar and Silvestre Varela. The following 6 March he scored his first goal for the team, a late equaliser in a 1–3 loss at S.C. Braga.
On 22 May 2016, in the final of the Taça de Portugal, also against Braga, Pereira's attempt in the penalty shootout was saved by José Carlos Marafona, in an eventual 2–4 defeat (2–2 after 120 minutes). The following 14 March, in the away leg of the last 16 of the Champions League against Juventus FC, he received a straight red card for handling Gonzalo Higuaín's goal-bound shot, conceding a penalty from which Paulo Dybala scored the only goal to eliminate the Portuguese 3–0 on aggregate.
A Uruguayan international since making his debut on 26 October 2005 in a friendly loss, away against Mexico, Pereira quickly became a regular for his country, and represented it at the 2007 Copa América. He was selected for the squad at the 2010 FIFA World Cup in South Africa, playing all the games and minutes for the eventual semfinalists: in the quarterfinals against Ghana, he missed his penalty shootout attempt but Uruguay eventually qualified for the next stage, where he scored his first goal as an international in a 2–3 loss against the Netherlands, finding the net in the 91st minute.
Pereira was again an undisputed starter for Uruguay in the 2011 Copa América held in Argentina, with the national team winning its 15th continental tournament. He played 14 times in qualification for the 2014 World Cup, netting once in a 4–2 home win over Peru on 10 June 2012 and opening the scoring as Uruguay won 5–0 away to Jordan in a play-off to qualify for the tournament, on 13 November of the following year.
Pereira was the first player sent off in the finals in Brazil, receiving his marching orders in injury time of the 1–3 defeat to Costa Rica in Fortaleza after kicking Joel Campbell. He played a further two games in the tournament, which ended for the Charrúas at the last-16 stage.
On 28 March 2015, Pereira earned his 100th cap in a 1–0 friendly victory over Morocco in Agadir, becoming only the second Uruguayan after Diego Forlán to reach the milestone. He played every minute of the campaign at that year's Copa América, captaining the team in their final group match against Paraguay in place of the suspended Diego Godín.
On 9 June 2016, Pereira surpassed Forlán as Uruguay's most capped player by earning his 113th in the team's final group game at the Copa América Centenario in the United States; the 1–0 loss to Venezuela eliminated the nation.
Scores and results list Uruguay's goal tally firstAs of 27 August2017
As of 6 September 2017
Primeira Liga: 2009–10, 2013–14, 2014–15
Taça de Portugal: 2013–14
Taça da Liga: 2008–09, 2009–10, 2010–11, 2011–12, 2013–14, 2014–15
Supertaça Cândido de Oliveira: 2014
UEFA Europa League: Runner-up 2012–13, 2013–14
Taça de Portugal: Runner-up 2015–16
Copa América: 2011
Cosme Damião Award – Footballer of the Year: 2012