Carvallo began his career in Universitario, joining the club's youth ranks at 12 years of age. In May 2003, at 17 years of age, he made his debut in a Torneo Descentralizado match against Atlético Universidad, but he did not play regularly for Juan Flores was still the first choice for goalkeeper. Nevertheless, in December, Carvallo played as a starter in his first Peruvian Clásico with a 2–0 victory against Alianza Lima. With la U, he defended the club's goal in international competitions. In 2006, he participated in four Copa Libertadores matches and, in 2007, saw action in two Copa Sudamericana matches. Carvallo participated in 94 first division matches during his five year stay with Universitario.
He joined D.C. United on loan in early 2008. He currently holds a US Green card which helped speed up his transfer to D.C. United. He made his debut on 12 April 2008, against Real Salt Lake, conceding four goals in a 4-0 loss. Carvallo was released on 17 July 2008.
In July 2008, he was loaned out to Sporting Cristal for the 2nd half of the year. After his loan ended in December, he signed a two-year contract with Sporting Cristal, where he disputed the goalkeeper spot with Manuel Heredia after the injury and departure from the club of Erick Delgado.
Carvallo signed with FBC Melgar in January 2011, after Erick Delgado returned to Cristal. He stayed in the club for two seasons, during which Melgar qualified to the 2013 Copa Sudamericana, returning to a continental competition after 15 years.
Second spell in Universitario and UTC
In December 2012, Carvallo was signed for two seasons by Universitario de Deportes, on request by manager Ángel Comizzo.[2] In February 2013, he played his first match after his return in a 1–0 victory against Universidad César Vallejo. Carvallo became the starting goalkeeper for the whole year, at the end of which Universitario defeated Real Garcilaso in the Torneo Descentralizado finals after three games. In the final game's penalty shootout, he saved two penalties to win his first professional title.[3] In 2014, Carvallo played a total of 28 matches on both Torneo Descentralizado and Copa Libertadores. In 2015, to the surprise of many and despite the good level shown by him, Universitario signed another goalkeeper in Raúl Fernández, from MLS club FC Dallas. After Fernández's arrival, and in spite of manager Roberto Challe's decision to rotate between both goalkeepers, Carvallo stopped playing regularly which made his departure imminent. In December 2015, he was signed by Universidad Técnica de Cajamarca,[4] where he stayed for three years and became one of the leading players of the team.
Final spell in Universitario and UCV
In December 2018, Carvallo returned to Universitario de Deportes with a contract for 2 years, on request by manager Nicolás Córdova.[5] He disputed the goalkeeper spot with Patrick Zubczuk, who was previously on a good run of form. After the return of Ángel Comizzo, the Argentine manager gave him his full confidence. Along with Alejandro Hohberg, Carvallo was one of the best players in the squad of la U in 2019. In 2020, he played in the qualifying stages of the Copa Libertadores, where Universitario was eliminated by Cerro Porteño. In that same season, his team won the Fase 1 of the Liga 1, but lost the playoff finals at the end of the year against Sporting Cristal. Carvallo was one of the main figures of Universitario's 2021 season, in which the team qualified to the 2022 Copa Libertadores. He kept a fair performance throughout the 2022 season, which led him to a contract renewal for one more year.[6]
In June 2023, after a brawl following the 1–0 victory against Gimnasia de La Plata for the 2023 Copa Sudamericana, Carvallo was sent off and subsequently suspended for 8 matches in all continental club competitions.[7] At the end of the season, with him as vice-captain and one of the team's leaders, Universitario won the Liga 1, giving Carvallo his second national title, after defeating Alianza Lima in the finals. He kept a good performance throughout the year, both in the league, winning the award for the best goalkeeper of the season,[8] and in the Copa Sudamericana. Following the finals' second game and during his team's celebration, Carvallo announced his departure from Universitario.[9]
In November 2023, Universidad César Vallejo announced Carvallo's signing for the following two seasons.[10] The club finished 17th in the 2024 Liga 1 table and ended up being relegated to the Liga 2.[11]
International career
Carvallo has represented Peru internationally at the Under-15, Under-17 and Under-20 level. He made his full national team debut for Peru in September 2007, when he entered the match as a second-half substitute in a 2-0 victory over Bolivia in Lima. Due to his regularity in his years playing with UTC, Carvallo was always under consideration for the national team's call-ups, with Ricardo Gareca as a manager. In May 2018 he was named in Peru’s provisional 24 man squad for the 2018 FIFA World Cup in Russia.[12]