After much speculation about his future, on 11 July 2015 Casillas signed with Portuguese Primeira Liga side Porto on a two-year deal with the option of a one-year extension.
Real Madrid's conduct in his exit was criticised, with Casillas' parents claiming that he was being forced out of the club by president Florentino Pérez, who received calls to quit from fans.
Former international teammate Xavi, who earlier that summer left Barcelona after a similarly long and successful career, claimed that Real Madrid were ungrateful of Casillas' service to the club.

Casillas made his Primeira Liga debut on 15 August, keeping a clean sheet in a 3–0 win over Vitória de Guimarães at the Estádio do Dragão.
On 29 September 2015, he overtook Xavi to become the player with the most appearances in the Champions League, making his record 152nd Champions League appearance in a 2–1 home win over Chelsea.
That season, Casillas also broke Edwin van der Sar's record for the most clean sheets in Champions League history, keeping his 51st clean sheet in the competition on 20 October 2015, in a 2–0 win over Maccabi Tel Aviv, as his team climbed top of Champions League Group G. In January 2016, he was blamed for the away loss at Vitória de Guimarães (1–0) in the league, following a high-profile error.

On 11 March 2017, Casillas set a new personal record for clean sheets in a single season with his sixteenth clean sheet in a 4–0 away win over Arouca.
On 14 March, Casillas made his 175th appearance in UEFA club competitions in a 1–0 away defeat to Juventus in the second leg of the round of 16 of the UEFA Champions League, overtaking Paolo Maldini as the player with the most appearances in European club matches.

On 13 September, Casillas equalled Ryan Giggs's record of playing in 19 consecutive UEFA Champions League campaigns when he appeared in Porto's 3–1 home defeat to Beşiktaş in the 2017–18 edition of the tournament.
On 2 April 2018, Casillas played his 1,000th match as a professional in Porto's 2–0 loss at Belenenses.
In May, he won his first trophy with the club as they won the league title for the first time since 2013.
The 2017–18 Primeira Liga title was confirmed after Sporting CP and Benfica tied their respective match.
On 17 May 2018, he renewed his contract with Porto for another year.

On 4 August, Casillas started in Porto's 3–1 victory over Desportivo das Aves in the 2018 Supertaça Cândido de Oliveira.
He surpassed Giggs' record during the 2018–19 season, appearing in his 20th consecutive UEFA Champions League campaign.
On 11 December, Casillas, in a 3–2 away win over Galatasaray, became the first player to reach the knock-out stage 19 times, and become only the second player after Cristiano Ronaldo to win 100 Champions League matches.
He made 31 league appearances throughout the season as Porto finished in second place, but his season was cut short after he suffered "an acute myocardial infarction" during training on 1 May 2019.
He was discharged from hospital on 6 May, but commented that he was uncertain about his future.
After much speculation about his future, on 11 July 2015 Casillas signed with Portuguese Primeira Liga side Porto on a two-year deal with the option of a one-year extension. Real Madrid's conduct in his exit was criticised, with Casillas' parents claiming that he was being forced out of the club by president Florentino Pérez, who received calls to quit from fans. Former international teammate Xavi, who earlier that summer left Barcelona after a similarly long and successful career, claimed that Real Madrid were ungrateful of Casillas' service to the club.
Casillas made his Primeira Liga debut on 15 August, keeping a clean sheet in a 3–0 win over Vitória de Guimarães at the Estádio do Dragão. On 29 September 2015, he overtook Xavi to become the player with the most appearances in the Champions League, making his record 152nd Champions League appearance in a 2–1 home win over Chelsea. That season, Casillas also broke Edwin van der Sar's record for the most clean sheets in Champions League history, keeping his 51st clean sheet in the competition on 20 October 2015, in a 2–0 win over Maccabi Tel Aviv, as his team climbed top of Champions League Group G. In January 2016, he was blamed for the away loss at Vitória de Guimarães (1–0) in the league, following a high-profile error.
On 11 March 2017, Casillas set a new personal record for clean sheets in a single season with his sixteenth clean sheet in a 4–0 away win over Arouca. On 14 March, Casillas made his 175th appearance in UEFA club competitions in a 1–0 away defeat to Juventus in the second leg of the round of 16 of the UEFA Champions League, overtaking Paolo Maldini as the player with the most appearances in European club matches.
On 13 September, Casillas equalled Ryan Giggs's record of playing in 19 consecutive UEFA Champions League campaigns when he appeared in Porto's 3–1 home defeat to Beşiktaş in the 2017–18 edition of the tournament. On 2 April 2018, Casillas played his 1,000th match as a professional in Porto's 2–0 loss at Belenenses. In May, he won his first trophy with the club as they won the league title for the first time since 2013. The 2017–18 Primeira Liga title was confirmed after Sporting CP and Benfica tied their respective match. On 17 May 2018, he renewed his contract with Porto for another year.
On 4 August, Casillas started in Porto's 3–1 victory over Desportivo das Aves in the 2018 Supertaça Cândido de Oliveira. He surpassed Giggs' record during the 2018–19 season, appearing in his 20th consecutive UEFA Champions League campaign. On 11 December, Casillas, in a 3–2 away win over Galatasaray, became the first player to reach the knock-out stage 19 times, and become only the second player after Cristiano Ronaldo to win 100 Champions League matches. He made 31 league appearances throughout the season as Porto finished in second place, but his season was cut short after he suffered "an acute myocardial infarction" during training on 1 May 2019. He was discharged from hospital on 6 May, but commented that he was uncertain about his future.
Iker Casillas