Duvnjak begann seine Karriere beim FC Blau-Weiß Linz. Im April 2009 debütiert er für die Herrenmannschaft der Linzer in der Regionalliga, als er am 21. Spieltag der Saison 2008/09 gegen den SV Bad Aussee in der Nachspielzeit für Dario Jelčić eingewechselt wurde.
Mit den Linzern konnte er 2010/11 in den Profifußball aufsteigen. In der jener Saison absolvierte Duvnjak 28 Spiele in der Regionalliga Mitte, in denen er drei Treffer erzielen konnte. Sein Debüt für Blau-Weiß Linz in der zweiten Liga gab er im Juli 2011, als er am ersten Spieltag der Saison 2011/12 gegen den TSV Hartberg in der Startelf stand.
Zur Saison 2012/13 wechselte er zum Landesligisten SK Vorwärts Steyr. Mit Steyr konnte er zu Saisonende in die Regionalliga aufsteigen. Im Sommer 2014 wechselte Duvnjak nach Deutschland zum Regionalligisten Wacker Burghausen.[1] Nach einem Jahr in Deutschland kehrte er zur Saison 2015/16 nach Österreich zurück, wo er sich dem Regionalligisten ATSV Stadl-Paura anschloss. In zwei Spielzeiten bei Stadl-Paura kam er zu 45 Regionalligaeinsätzen.
Zur Saison 2017/18 wechselte er zum viertklassigen WSC Hertha Wels. Nach neun Einsätzen für die Hertha in der OÖ Liga schloss er sich im Jänner 2018 dem Ligakonkurrenten und Stadtrivalen FC Wels an. Mit den Welsern stieg er am Saisonende in die Regionalliga auf. In zweieinhalb Jahren beim FC Wels kam er zu 25 Einsätzen. Zur Saison 2020/21 kehrte Duvnjak nach Stadl-Paura zurück.[2] Für Stadl-Paura kam er zu neun Regionalligaeinsätzen.
Zur Saison 2021/22 wechselte er zur sechstklassigen DSG Union Putzleinsdorf.