A former defender, Herrera began his career playing with second division side Deportivo Neza in 1985, then transferring to Tecos UAG in 1987, and making his debut in the Primera División in 1988. After a brief period with Santos Laguna, in 1989 Herrera transferred to Atlante and went on to play for the club on three separate occasions, winning his only league championship as a player during the 1992–93 season. He also had a notable career with Toros Neza, making over 100 appearances for the club from 1995 until 1997. He retired with Atlante in 2000. Herrera was also a Mexican international, participating in the 1993 Copa América tournament in which Mexico finished in second place.
As a manager, Herrera was in charge of Atlante in 2002, and again in 2010. He also coached Monterrey, managing them to two finals in 2004 and 2005, losing to UNAM and Toluca. He went on to coach Veracruz in 2008, and Estudiantes Tecos from 2008 until 2010. In November 2011, Herrera was announced as manager of Club América, with whom he won his first league championship in 2013.
In October 2013, Herrera was named interim coach of the Mexico national team to guide them through the intercontinental playoff matches against New Zealand to qualify for the 2014 World Cup. After Mexico won the playoff and gained qualification, Herrera's job was extended to coaching the team during the World Cup. He ultimately extended his contract until 2018. Despite leading Mexico to the 2015 CONCACAF Gold Cup, he was sacked as coach of the national team after an alleged physical altercation with a reporter.
Herrera made his debut in 1985 with second division side Deportivo Neza. Originally a forward, he switched to playing as a defender after his move to Tecos UAG in 1987. Herrera made his debut in the Primera División on 22 May 1988 in a 2–0 victory over Atlas. He transferred to Santos Laguna in 1988, making 30 appearances and scoring four goals. He had his first stint with Atlante in 1989, making 36 appearances and scoring four goals before moving to Querétaro in 1990. He again transferred to Atlante in 1991, and won his first league title during the 1992–93 season after defeating Monterrey in the finals by a 4–0 aggregate score after winning the first-leg 1–0 and the second 4–0. He would remain at the club until 1995, making 125 appearances and scoring nine goals. Herrera was then sold to Toros Neza, with whom he would play in his second league final during the "Verano '97" season, ultimately losing to Guadalajara by an aggregate score of 7–2. In 1999, Herrera returned to Atlante for a third time before officially retiring in 2000.
Herrera participated with the Mexico national team in the 1993 Copa América tournament held in Ecuador. Mexico went on to reach the final against Argentina, losing 1–2.
Herrera played in all of Mexico's matches during the qualifying stages for the 1994 FIFA World Cup, though he was omitted from the final squad list by coach Miguel Mejía Barón.
In 2002, two years after retiring, Herrera came back to coach his former club Atlante. He would remain manager for two years, but resigned in 2004 after failing to take Atlante to a final.
For the Apertura 2004, Herrera was named head coach of Monterrey. He coincidentally faced his former club Atlante in the semifinals, with Monterrey advancing by an aggregate score of 7–3. He ultimately failed to make Monterrey champions, losing to UNAM in the final by an aggregate score of 3–1. He succeeded in taking Monterrey to another final in the Apertura 2005 tournament, but failed once more, this time losing to Toluca with an aggregate score of 6–3. Herrera would continue to be manager of Monterrey until the Apertura 2007 tournament, where his contract was terminated in September 2007 due to continuous poor form.
Prior to the Clausura 2008, Herrera was hired as manager of Veracruz after the resignation of Antonio Mohamed. A stand-out victory for Herrera was a 4–0 home victory over Club América on 29 March 2008. He was in charge of preventing Veracruz from being relegated to the Primera División A, though Veracruz inevitably descended. Herrera parted ways with the club in May 2008.
Shortly after leaving Veracruz, Herrera was hired to manage a struggling Estudiantes Tecos half-way into the Apertura 2008 tournament to replace José Luis Trejo. He was fired on 6 September 2010 after Tecos suffered a 0–3 defeat against Guadalajara during a league match of the Apertura tournament.
In November 2010 it was announced that Herrera was hired as the new Atlante manager, returning to his former club following his first managerial stint in 2002. Under his reign, Atlante finished fourth place in the Clausura 2011, though they would be eliminated in the quarterfinals by Cruz Azul. Atlante failed to qualify for the playoffs of the Apertura 2011, and Herrera did not renew his contract with the club. There were rumors placing him at Club América as their new manager for the Clausura 2012 tournament.
On 16 November 2011, Herrera was officially named manager of América. In his first press conference, Herrera revealed he had signed a six-month contract, saying; "If in six months I don't give results, I leave."
On 7 January 2012, América defeated Quéretaro 2–0, which was Herrera's first official victory with América. América finished the Clausura 2012 in third place, and reached the semifinals, being eliminated by Monterrey by an aggregate score of 0–2. On 14 May, Miguel Herrera was ratified as manager.
On 26 May 2013, América won the eleventh league title in their history by defeating Cruz Azul 4–2 on penalty kicks after a dramatic comeback from a 0–1 first leg loss to tie 2–2 on aggregate, and playing the second leg with ten men for over 105 minutes. This would be Miguel Herrera's first league title in his managerial career after losing his two previous finals while at Monterrey.
On 18 October 2013, Herrera was appointed interim head coach of the Mexico, replacing Víctor Manuel Vucetich to become the fourth national team coach within the span of a month. He led El Tri to a 9–3 aggregate victory over New Zealand in the two-leg intercontinental playoff to qualify for the 2014 World Cup. On December 2, it was announced that Herrera would remain national team coach at least through the World Cup.
On 23 June 2014, Mexico defeated Croatia 3–1 to qualify for the knockout stage of the World Cup.
On 26 July 2015, Herrera′s team won the CONCACAF Gold Cup final 3–1 against Jamaica, Mexico′s 10th Gold Cup win. Two days later, Herrera was released as coach of the Mexico national team after an alleged physical altercation with TV Azteca announcer Christian Martinoli – who had been critical of Herrera – while the two waited in the TSA line at the Philadelphia International Airport.
On 2 November 2015 Herrera was officially named manager of Club Tijuana. He managed the club until May 2017, qualifying to the play-offs twice.
On 26 May 2017, newly appointed sporting president Santiago Baños officially announced Herrera's return to Club América. He lost in his first official game in his return at América, a 2–1 defeat to Querétaro for the 2017 Supercopa MX. Six days later América again lost to Querétaro, 1–0, this time in their opening match of the Apertura 2017. The following week, Herrera won his first league match in his second spell with América, defeating Pachuca 2–0 at the Estadio Hidalgo.As of 15 September 2017
Primera División: 1992–93
Liga MX: Clausura 2013
CONCACAF Gold Cup: 2015