Herrera doorliep de jeugdopleiding van CF Pachuca. Hij debuteerde in de Mexicaanse Primera División op 23 juli 2011 tegen Santos Laguna. Hij speelde 52 competitiewedstrijden, waarin hij twee doelpunten scoorde. In 2013 vertrok hij naar de Portugese club FC Porto, waar hij in het seizoen 2013/14 zeventien maal in actie kwam. Ook speelde hij in de Liga de Honra acht keer bij Porto II.[1] In het seizoen 2014/15 was Herrera basisspeler in het elftal van Porto, met 33 gespeelde competitiewedstrijden (28 basisplaatsen). In de UEFA Champions League 2014/15 kwam hij elfmaal in actie; ook in de verloren kwartfinale tegen Bayern München (4–7) speelde Herrera. In de achtste finale tegen FC Basel op 10 maart 2015 was Herrera een van de vier doelpuntenmakers, op aangeven van Yacine Brahimi; ook gaf hij de assist op Vincent Aboubakar, die een kwartier voor tijd de 4–0 maakte.[2] In de nationale competitie eindigde Porto uiteindelijk op de tweede plaats.[1]