Nato a Brčko, in Bosnia ed Erzegovina, fu costretto ad andar via, a causa della guerra, dapprima a Vinkovci, in Croazia, poi a Neuenhof, in Svizzera. Qui entra nella squadra locale (1996); all'età di 15 anni, invece, entra nelle giovanili del Baden, prima di passare in prima squadra nella stagione seguente, dove colleziona 22 presenze e 4 reti.
Grasshoppers
Viene acquistato dal Grasshoppers, dove gioca per ben 5 stagioni, prima di passare al Basilea nell'estate del 2004, trasferimento da 3 milioni di euro accompagnato da molte critiche nei confronti di Petrić, che giusto una stagione prima del passaggio ai rossoblu aveva partecipato ai festeggiamenti per la vittoria del campionato, bruciando una sciarpa del Basilea. L'esperienza a Zurigo si chiude con 30 gol in 114 presenze in campionato.
Basilea
Petrić raggiunge il quarto posto nella classifica marcatori della stagione 2005-2006, grazie alle 15 gol in 31 presenze. Nella stessa stagione, gioca tutte e 12 le partite di Coppa UEFA, segnando 3 gol finché ai quarti di finale il Middlesbrough non elimina dalla competizione la squadra svizzera. Continua ad offrire buone prestazioni anche nella stagione 2006-2007, sia in campionato, sia in UEFA, partecipando alla goleada ai danni del Rabotnicki (6-2), al primo turno.
Nella fase a gironi della stessa edizione della UEFA, nel match del 23 novembre 2006 contro il Nancy, Petrić viene messo tra i pali, in seguito all'espulsione del portiere del Basilea Franco Costanzo, avvenuta dopo un fallo da rigore di quest'ultimo su Issiar Dia, quando erano già state effettuate le tre sostituzioni concesse. In quest'occasione Petrić compie una gran parata sul rigore calciato da Mickaël Chrétien, permettendo alla sua squadra di terminare la partita sul 2-2.
Arrivato al Dortmund, l'inizio della stagione in Germania è positivo: Petrić segna anche una doppietta nel 3-0 del Borussia sul Werder Brema. Nel corso della stagione si rivela uno degli attaccanti più prolifici del campionato.
Il 16 agosto 2008 viene ceduto all'Amburgo in cambio di Mohamed Zidan più soldi.[2] Nella compagine tedesca milita per quattro stagioni, giocando in totale 136 partite, nelle quali va in gol in 61 occasioni.
Inghilterra: Fulham e West Ham
Il 28 luglio 2012, viene ufficializzato il suo passaggio al Fulham a parametro zero. A fine stagione il suo contratto non viene rinnovato ed il giocatore resta quindi svincolato.
Il 10 settembre 2013 si lega al West Ham, firmando un contratto di un anno. Il 28 dicembre dello stesso anno, dopo appena tre mesi di permanenza nel club, il West Ham comunica attraverso il suo sito ufficiale di aver rescisso consensualmente il contratto di Petrić. L'attaccante croato termina così la sua breve esperienza con gli Hammers con all'attivo solo 3 presenze e zero gol.
Panathinaikos
L'8 gennaio 2014 è stato ingaggiato dal Panathinaikos, in Grecia, firmando un contratto di un anno e mezzo.[3] Al termine del contratto nel giugno 2016 decise di ritirarsi.
Nazionale
Dopo aver militato nelle nazionali giovanili elvetiche, nel 2001 viene convocato dall'allora ct della Nazionale croataMirko Jozić; debutta così a novembre contro la Corea del Sud, giocando due gare contro la compagine asiatica e subentrando a partita in corso in ambedue le occasioni. Non viene però chiamato per il campionato del mondo 2002, disputato in Corea del Sud e Giappone. Segna il primo gol in nazionale contro il Galles nell'amichevole giocata a Varaždin, in Croazia, il 21 agosto 2002; gioca la sua prima partita in una competizione UEFA in occasione del match contro l'Estonia, valido per le qualificazioni ad Euro 2004: da questo momento in poi, non verrà più convocato per tre anni e mezzo.
Agli inizi del 2006, fa il suo ritorno in nazionale, contro la Corea del Sud a Hong Kong. Viene omesso dall'elenco dei 23 partecipanti al campionato del mondo 2006, pur essendo stato tra i pre-convocati. Viene riconvocato ad agosto dal nuovo commissario tecnicoSlaven Bilić per giocare l'amichevole di Livorno contro l'Italia. È parte integrante della squadra croata durante la campagna di qualificazione al campionato d'Europa 2008, nel corso della quale, esattamente alla seconda gara, contro l'Andorra, diviene il primo calciatore nella storia della Nazionale croata a segnare quattro gol in una partita. Petrić li realizza in soltanto un'ora di gioco: la partita termina 7-0, il miglior risultato di sempre per la Croazia. L'Andorra è il suo avversario preferito: infatti, segna altri due gol agli iberici nella gara di ritorno il 12 settembre 2007.
Il 21 novembre 2007, ultima gara di qualificazione, subentra nella ripresa nel corso della partita contro l'Inghilterra; sul punteggio di 2-2, Mladen realizza un gol da circa 23 metri, fissando il punteggio sul 3-2 e impedendo alla nazionale inglese di qualificarsi all'europeo, a favore della Croazia - qualificata già prima della partita - e della Russia. Alla fine del match, afferma di non voler scambiare con nessuno la propria maglia, dicendo: «Questo è il momento della mia carriera di cui sono più orgoglioso. Non ho voluto scambiare questa maglia con nulla».[4] Grazie alle sue ottime partite di qualificazione, viene inserito nella lista dei 23 partecipanti per il campionato d'Europa 2008, durante il quale la Croazia vince il suo girone, uscendo però dalla competizione ai quarti di finale, battuta ai rigori dalla Turchia.