Născut în Metkovic, Croația, Petkovic și-a început cariera la tineret la cluburile din orașul natal ONK Metković și NK Neretva, înainte de a se transfera la Dinamo Zagreb în 2007. A rămas acolo până pe 4 septembrie 2009, când a fost transferat la academia de tineret a rivalei din oraș, NK Zagreb. În următoarele două sezoane, el a jucat pentru NK Hašk (2010-2011) și Hrvatski Dragovoljac (2011-2012), înainte de transferul său în Italia, în Seria A, la Catania.[4]
Cariera pe echipe
Calcio Catania
La 27 august 2012, Petkovic a transferat de Calcio Catania. Suma de transfer implicată nu a fost dezvăluită, deși Petkovic a fost trimis direct la academia de tineret a clubului după sosirea acestuia. A fost trecut pentru prima dată pe foaia de joc a echipei mari pe 27 ianuarie 2013, într-o victorie acasă cu 2-1 împotriva Fiorentinei într-un meci de campionat.[5] Debutul său în campionat a venit în ultimul meci de Serie A 2012-2013, când a intrat în minutul 89 într-un meci din deplasare, scor 2-2 cu Torino.[6] Înaintea sezonului de Serie A 2013-2014, Petkovic a fost a promovat oficial la prima echipă și i s-a atribuit tricoul cu numărul 32.[7]
Trapani și Bologna
În ianuarie 2016, Petkovic s-a transferat în Seria B la Trapani, înainte de a se întoarce în Serie A la Bologna în ianuarie 2017.
Dinamo Zagreb
La 6 august 2018, el a fost împrumutat la Dinamo Zagreb pentru un sezon, iar Dinamo are obligația de a-l cumpăra la sfârșitul împrumutului, dacă sunt îndeplinite anumite condiții.[8]
La 11 martie 2019, după o serie de meciuri bune făcute atât în campionatul Croației, cât și în fazele eliminatorii ale Ligii Europei, unde a marcat și a primit titlul de omul meciului în partidele cu Viktoriei Plzeň și Benfica, el a primit prima sa convocare la naționala mare a Croației în locul lui Marko Pjaca.[9] El a debutat pentru națională la 21 martie 2019 într-un meci de calificare laEuro 2020 împotriva Azerbaidjanului.[10]