Muñoz began his career in 1999 with Monarcas Morelia, playing in over 200 matches for the club, before eventually moving to Atlante in 2010. In 2011 he was sold to Club América, with whom he won a league title in 2013, a second in 2014, and the CONCACAF Champions League in 2015 and 2016.
Muñoz was born in Morelia, Michoacán, on 1 February 1980. Muñoz speaks English fluently having been educated in Northern California during his formative years, attending elementary school and junior high school in Redwood City as an undocumented child of migrant workers. He never legalized his status in the US, but his parents have U.S. resident status and live in San Jose. He returned to Mexico before high school and by age 19 was playing for his hometown club in Morelia.
Moisés Muñoz made his league debut with Monarcas Morelia on 19 September 1999 against Pachuca. Morelia won the Invierno 2000 league tournament, achieving their first league title against Toluca, with Muñoz failing to appear in a match. A native of the city of Morelia, he became a mainstay in the team, with his eleven years at the club one of the longest for a goalkeeper in the league. He played in 282 matches before being transferred to Atlante in the 2010 Draft.
For the Apertura 2010 tournament, Muñoz joined Atlante in a trade for Argentine goalkeeper Federico Vilar. He would go on to be a permanent fixture for the club until his departure in 2011, making 53 league appearances.
On 25 November 2011, Muñoz was signed by league giants Club América. In his debut tournament with the club – the Clausura 2012 – he started in 21 games and played in 90 minutes in 20 of them (he was subbed off in the second half of the league match against Atlas).
In May 2013, Muñoz played his first league final with América, conceding the only goal in the 0–1 first-leg loss to Cruz Azul. His performance in the second-leg at the Estadio Azteca on 26 May helped América achieve a dramatic comeback after losing 0–1, 0–2 on aggregate, to tie the match 1–1 in the 88th minute with a goal from captain Aquivaldo Mosquera. In the 92nd minute, with seconds left of injury time, Muñoz scored a diving header off an Osvaldo Martínez corner, which deflected off Cruz Azul defender Alejandro Castro, to send the game into extra-time, and subsequently to a penalty shoot-out. He saved Javier Orozco's penalty kick, and América would go on to win the shoot-out 4–2 and win their eleventh league title. Muñoz's performance was praised by various media outlets.
Muñoz's first international cap for Mexico was in a friendly match against Ecuador on 27 October 2004. Muñoz was the second-choice goalkeeper in both the 2004 Copa América and the 2005 Confederations Cup. Muñoz was the starting goalkeeper during the 2005 CONCACAF Gold Cup. Coach Ricardo LaVolpe included him in the preliminary squad for the 2006 World Cup, but he did not make the final 23-man list. Muñoz had also been called up as a backup goalkeeper by Hugo Sánchez and Sven-Göran Eriksson.
Five years after his last call up and eight years after his last cap, Muñoz was selected by coach José Manuel de la Torre to Mexico's 2013 Gold Cup squad. On 14 July 2013, he was the starting goalkeeper for Mexico's final group stage match against Martinique, which Mexico won 3–1. During the match, Muñoz failed to save a penalty-kick from Kévin Parsemain.
Later that year, after Miguel Herrera took over as national team coach, Muñoz was named the starting goalkeeper for the 2014 World Cup qualification playoff matches against New Zealand. He played in both matches as Mexico won the playoff 9–3 on aggregate. He did not make the final 23-man squad for the 2014 World Cup.
In June 2015 Muñoz was named in Mexico's squad participating in the CONCACAF Gold Cup, being handed the number 1 jersey, instead of the number 23 he traditionally wears (which was instead given to José Juan Vázquez).
Moisés Muñoz is the cousin of Morelia goalkeeper Carlos Felipe Rodríguez.
Muñoz has stated that had he not decided on playing professional football he would have played basketball or American football.
In 2015, Muñoz made an appearance on the Mexican telenovela La vecina.
On 3 June 2012, while driving his Honda Odyssey through the highway that connects Mexico City with Guadalajara, Muñoz lost control of his vehicle and flipped it on to its roof. He was heading to Morelia, Michoacán at around 7:00 p.m. with his wife Verónica (née Castro Alfaro) and two kids, Héctor and Zafiro. All of them were taken to Ángeles del Pedregal hospital by helicopter – the same hospital where Salvador Cabañas, a former Club América player, was treated after being shot in the head. Apparently, the harsh rainfall in the area caused Muñoz to lose control of his vehicle. Moreover, according to reports by the Mexican Red Cross, Muñoz suffered from traumatic brain injury but was "stable and conscious." Originally, it was reported that Muñoz's health condition was serious, but had improved as he received medical attention. It was later stated that his head wound was not life-threatening, nor would it affect his playing career. Muñoz only suffered a head wound and never lost consciousness of what had happened. He later revealed that he had suffered a broken finger.
Miguel Herrera, manager of Club América, stated in a press conference what Muñoz had personally told him:
I am very well. Fortunately, the doctors discarded any head fractures, and I am now boarding the helicopter and heading to Ángeles del Pedregal (the hospital). I will recover. Wait on me, Miguel.— Moisés Muñoz