Herrera stroomde vanuit de jeugdopleiding van Real Zaragoza in januari 2009 door naar de A-selectie. Hij maakte zijn debuut in het betaald voetbal bij de club uit Aragón tijdens het seizoen 2008/09 in de Segunda División. Op 1 februari 2009 debuteerde Herrera in de thuiswedstrijd tegen Levante UD (2–1 overwinning). In de rest van het seizoen speelde hij nog achttien competitiewedstrijden, waarin hij twee doelpunten maakte: op 2 mei opende Herrera in de eerste minuut van het thuisduel tegen CD Tenerife de score (eindstand 1–1) en een week later was hij de maker van het enige doelpunt tegen SD Huesca. In juni 2009 promoveerde Zaragoza naar de Primera División.[1] Op 29 augustus speelde Herrera zijn eerste wedstrijd op het hoogste competitieniveau; de wedstrijd tegen het eveneens gepromoveerde CD Tenerife eindigde in een 1–0 overwinning. In het seizoen 2009/10 speelde Herrera 30 wedstrijden in de Primera División, waarvan 23 met een plaats in het basiselftal. Bij vier van de acht gemiste wedstrijden had hij interlandverplichtingen.[2] De Primera División 2010/11 was Herrera's laatste seizoen bij Real Zaragoza. Voor het tweede jaar op rij was hij een van de meest gebruikte spelers in de selectie, met 35 optredens in de competitie en de Copa del Rey. In de tweede speelronde van het seizoen, op 12 september 2010 tegen Málaga CF, verloor Zaragoza met 3–5. Nadat Málaga binnen 35 minuten op een 0–5 voorsprong was gekomen, leverde Herrera tweemaal een assist en maakte hij zelf tien minuten voor tijd het derde doelpunt.[3] Het duel tegen Levante (1–2 winst) op 21 mei 2011 was de laatste wedstrijd van Herrera in dienst van Zaragoza. Bij de club kwam hij in totaal 86 keer in actie, maakte hij zes doelpunten en leverde hij drie assists.[2]
Op 7 februari 2011 tekende Herrera een contract voor vijf seizoenen bij Athletic Bilbao. Vanaf juli 2011 was hij officieel speler van Bilbao. Met de transfer was een bedrag van zevenenhalf miljoen euro gemoeid.[4] Herrera maakte zijn debuut voor de Basken op 18 augustus 2011 in de voorronde van de UEFA Europa League 2011/12 tegen Trabzonspor. Met het 0–0 gelijkspel (Herrera speelde de volledige wedstrijd) werd kwalificatie naar de groepsfase afgedwongen. In oktober 2011 speelde hij zijn eerste wedstrijd in een internationaal clubtoernooi en op 3 november maakte hij het enige doelpunt in de wedstrijd tegen Red Bull Salzburg (0–1). Herrera speelde in het seizoen 2011/12 in totaal 54 wedstrijden (vier doelpunten, twaalf assists). Met Bilbao bereikte hij de finale van zowel de Europa League (3–0 verlies van Atlético Madrid op 9 mei 2012) als de Copa del Rey (eveneens 3–0 verlies, nu van FC Barcelona, op 25 mei 2012).[5] Herrera speelde ook in de volgende twee seizoenen vrijwel alle wedstrijden van Bilbao en miste enkele wedstrijden door blessures. In augustus 2013 wees Athletic Bilbao een bod van Manchester United van ongeveer 25 miljoen pond op Herrera af.[6] Na het seizoen 2013/14 vertrok hij alsnog. Herrera speelde gedurende drie seizoenen bij Bilbao, waarin hij 128 wedstrijden speelde.
Herrera tekende op 26 juni 2014 een vierjarig contract bij Manchester United. Hij had een gelimiteerde afkoopsom van 37 miljoen euro in zijn contract, die de Engelse club voor hem overmaakte aan Bilbao. Bilbao had het bod van United eerst opnieuw afgewezen, maar Herrera zelf koos ervoor akkoord te gaan en gebruik te maken van de afkoopoptie in zijn contract.[7] Onder nieuwe trainer Louis van Gaal maakte Herrera op 23 juli zijn officieuze debuut voor United in een oefenwedstrijd in de Verenigde Staten tegen LA Galaxy (0–7 winst).[8] Op 16 augustus 2014, tijdens de openingswedstrijd van het seizoen 2014/15 in de Premier League tegen Swansea City (1–2 verlies) maakte Herrera zijn debuut in de Engelse competitie. Hij startte in het basiselftal en werd na ruim een uur spelen vervangen door Marouane Fellaini.[9] Als basisspeler kwam Herrera gedurende zijn eerste seizoen in Manchester in 26 competitiewedstrijden in actie en speelde hij mee in vijf bekerwedstrijden, waaronder de verloren kwartfinale tegen Arsenal FC op 9 maart. Herrera maakte op 4 april 2015 twee doelpunten in het gewonnen thuisduel tegen Aston Villa (3–1), wat hem de titel van man van de wedstrijd opleverde. Door de overwinning steeg United naar de derde plaats; de club zou uiteindelijk in mei 2015 eindigen op de vierde plaats.[10]
Herrera maakte zijn debuut in het Spaans voetbalelftal onder 21 op 13 november 2009 in een EK-kwalificatieduel tegen Finland (1–0 winst). In de rest van het kwalificatietoernooi speelde hij vijf interlands en miste hij uitsluitend de play-offwedstrijden in oktober 2010. In 2011 werd Herrera opgenomen in de Spaanse selectie voor het hoofdtoernooi in Denemarken. Hij speelde mee in alle wedstrijden en was een van de twee doelpuntenmakers in de met 0–2 gewonnen finale tegen Zwitserland –21 op 25 juni 2011.[11] Herrera nam met Spanje –23 deel aan de Olympische Spelen in Londen. Hij speelde mee in de drie groepswedstrijden, waarvan twee verloren werden en één eindigde in een gelijkspel (0–0 tegen Marokko op 1 augustus 2012).[2]