Op 17-jarige leeftijd haalde GNK Dinamo Zagreb Badelj weg bij stadsgenoot NK Zagreb. Hij werd onmiddellijk uitgeleend aan Lokomotiva om ervaring op te doen. Na één seizoen werd hij teruggehaald als vervanger voor de naar Tottenham Hotspur vertrokken Luka Modrić. Hij debuteerde in de Champions League voorronde tegen het Noord-IerseLinfield. Hij maakte zijn competitiedebuut op de openingsspeeldag van het seizoen 2008/2009 tegen HNK Rijeka. Hij opende de score voor GNK Dinamo Zagreb in een met 2–0 gewonnen wedstrijd. In zijn eerste seizoen speelde hij 31 competitiewedstrijden en 12 Europese wedstrijden voor GNK Dinamo Zagreb. In maart 2011 scoorde hij een doelpunt in de derby tegen rivaal HNK Hajduk Split. Tijdens het seizoen 2010-2011 droeg hij verschillende malen de aanvoerdersband. Tijdens het seizoen 2011/2012 speelde hij met GNK Dinamo Zagreb in de Champions League zes wedstrijden in een poule met Real Madrid, Olympique Lyon en AFC Ajax.
Op 29 augustus 2012 tekende Badelj een driejarig contract met optie op een extra jaar bij het Duitse Hamburger SV, dat vierde miljoen euro betaalde voor de Kroaat. Op 1 september 2012 maakte hij zijn Bundesliga debuut tegen Werder Bremen. Hij wist meteen een basisplek te versieren. Op 27 november 2012 scoorde hij zijn eerste doelpunt voor HSV in de Bundesliga tegen Schalke 04. Vanwege het spel dat Badelj tijdens de veertiende speelronde liet zien, werd hij opgenomen in de beste elf van de veertiende speelronde van de Bundesliga van het magazine Die Kicker.[1] Begin december 2012 kon Badelj niet naar Brazilië reizen met zijn Duitse ploeg door een blessure die hij opliep in de competitiewedstrijd tegen TSG 1899 Hoffenheim.[2]
In de zomer van 2014 maakte de Kroaat de overstap van Hamburger SV naar Fiorentina. De Duitsers incasseerden naar verluidt vijf miljoen euro voor de Kroatische international. Zijn eerste goal viel in zijn eerste wedstrijd voor de Italianen, tegen FC Lugano. Badelj begon in de basis en scoorde in de zevende minuut. Toch verloor de club uit Florence door twee tegendoelpunten van de gasten uit Lugano.[3]