
Born in Iquique, Puch began his career at hometown Deportes Iquique youth ranks, then moving to Huachipato reserve team in 2003.

In 2008, after two years playing in Talcahuano based–side, he returned to his homeland for play for Iquique where achieved a third-tier title that season as well as the first-tier promotion the following year. After an impressive season during the 2009 Torneo Apertura being a key player alongside Cristian Bogado, on mid-year, Puch reached a four-year deal with Chilean powerhouse Universidad de Chile which invested US$850,000 for his rights.

He quickly settled as starter playing for The Owls where celebrated a league title in 2011 with Jorge Sampaoli as head coach. However, on 14 May, he accepted an offer from Emirati club Al-Wasl FC for a US$4 million fee. There Puch was coached by Diego Maradona but only scored one goal in six league games.

In 2012, he returned to Deportes Iquique on loan. After completing the six-month loan spell in June, he didn't feature in any game during the second half of the year. After he initially returned to Al-Wasl, he was loaned back to Iquique, but the team didn't register him in time. He officially re-joined Iquique in January 2013 after training that period with the team, reappearing in a 1–1 away draw with León for the Copa Libertadores first stage.
In June 2013 he returned to Al-Wasl. This time Puch scored one goal in ten UAE Arabian Gulf League games. In August 2014, he ended his contract with Emirati club and then signed for Argentina's Huracán as a free agent in January 2015. After a season at Parque Patricios-based side, he moved to Ecuadorian giants L.D.U. Quito, led by Claudio Borghi who usually called-up him during their period at Chilean national team (2011–2012).

After an impressive 2016 Copa América Centenario he joined Liga MX club Necaxa. Helped Nexaca stay in Liga MX after recently being promoted from 2015–16 Ascenso MX season. He scored nine goals in his first season in Mexico.
On 7 June 2017, C.F. Pachuca announced the signing of Edson Puch from Club Necaxa.
In 2009, Puch received a call-up from Marcelo Bielsa for play the Kirin Cup, debuting in a 4–0 loss with Japan as a 46th-minute substitute for Jorge Valdivia. After his first international participation, he was recalled in November for a game with Slovakia at Bratislava. In 2011, during Bielsa's last match as national team coach against United States he played his first full international game during a 1–1 draw.
Puch was named in the 2015 Copa America squad but had to withdraw through injury being replaced by Francisco Silva.
Puch scored two goals in the seven-goal match against Mexico in the Copa América Centenario. Later, in the tournament he was part of the Chilean team that ran to the final. He was subbed in the 80th minute of the final against Argentina, which Chile won 4–2 on penalties.
International goals
Universidad de Chile
Campeonato Nacional: 2011 Apertura
Huracán
Supercopa Argentina: 2014
Chile
Copa América: 2016