Basha speelde in de jeugdopleiding van Lausanne-Sport, waarvoor hij in het seizoen 2004/05 ook zijn debuut zou maken. Hierna speelde hij nog een jaar in de Challenge League, alvorens hij de overstap maakte naar Italië. Achtereenvolgens was hij actief voor Lucchese, Viareggio en Rimini, waarna de middenvelder bij Frosinone terechtkwam. Daar speelde hij één seizoen en in 2010 werd Basha aangetrokken door Atalanta Bergamo.[1] Na opnieuw één jaargang maakte de Albanees de overstap naar Torino, dat hem huurde voor de duur van één seizoen.[2] In het seizoen 2011/12 werd Torino tweede in de Serie B, waardoor promotie bereikt werd naar de Serie A. Basha speelde dat seizoen in zesendertig competitiewedstrijden mee en hij werd definitief aangetrokken in de zomer erna.[3] Na de promotie was de middenvelder geen vaste basisspeler meer en in de jaargang 2014/15 speelde hij maar zes competitiewedstrijden, waarop zijn aflopende verbintenis niet verlengd werd.[4] Drie maanden na zijn vertrek uit Turijn keerde Basha terug naar zijn geboorteland, waar hij zijn handtekening zette onder een tweejarig contract bij FC Luzern.[5] In de eerste helft van het seizoen 2015/16 speelde de Albanees zeven competitiewedstrijden, waarna hij verhuurd werd aan Como.[6] In de zomer van 2016 tekende Basha voor twee seizoenen voor Bari.[7] Na twee seizoenen verliet Basha die club. Hierop tekende de Albanees voor twee jaar bij Aris Saloniki.[8] In september 2019 trok Melbourne Victory hem transfervrij aan.[9] Hij keerde in 2020 terug naar Zwitserland om voor Neuchâtel Xamax te gaan voetballen.[10] Een jaar later zette Basha op drieëndertigjarige leeftijd een punt achter zijn actieve loopbaan.[11]
Basha maakte zijn debuut in het Albanees voetbalelftal op 22 maart 2013, toen met 0–1 gewonnen werd uit bij Noorwegen door een doelpunt van Hamdi Salihi. Hij mocht van bondscoach Gianni De Biasi in de basis beginnen en hij speelde het gehele duel mee.[13] De middenvelder speelde vier dagen later zijn tweede interland voor Albanië. Hij mocht in de basis beginnen tegen Litouwen en na vierenveertig minuten zette Basha zijn land op een voorsprong van 3–0. Uiteindelijk zou Albanië met 4–1 winnen.[14] Met Albanië nam Basha in juni 2016 deel aan het Europees kampioenschap voetbal 2016. Albanië werd in de groepsfase uitgeschakeld, nadat het in Groep A op de derde plek eindigde achter Frankrijk en Zwitserland. Basha kwam op het EK in één duel in actie. In de derde groepswedstrijd tegen Roemenië (0–1 door een doelpunt van Armando Sadiku) mocht hij in de basis beginnen en hij speelde mee tot aan de drieëntachtigste minuut, toen hij vervangen werd door Lorik Cana.[15]