Praet werd in de jeugd van KRC Genk vooral geloofd om zijn spelinzicht. Zijn prestaties leverden hem een plaats bij de nationale jeugdploegen van België en leverden hem interesse op van clubs als Arsenal, Ajax en Lille op.[1] In mei 2010 ruilde de middenvelder Genk in voor RSC Anderlecht.
In eerste instantie kwam Praet hier bij de -19 terecht. Op het jeugdtoernooi AEGON Future Cup 2011 in Amsterdam werd hij uitgeroepen tot beste speler. Aan dat toernooi namen ook teams van onder meer Ajax, Bayern München en Fluminense deel.
RSC Anderlecht
Op 21 september 2011 maakte Praet onder trainer Ariël Jacobs zijn debuut in het eerste elftal van Anderlecht. In de beker van België startte hij toen in de basis tegen tweedeklasser Lommel United. Hij stond met twee assists aan de basis van de ruime overwinning (0-4).[2] Een ronde later scoorde hij in de beker zijn eerste officiële doelpunt.[3] Anderlecht verloor die wedstrijd met 1-2 van derdeklasser Rupel Boom. Enkele dagen na de verrassende uitschakeling in de beker debuteerde Praet ook in de competitie. Hij viel op 30 oktober in voor Fernando Canesin tijdens een thuiswedstrijd tegen Lierse SK. In maart 2012 verlengde hij zijn contract met drie seizoenen.
In de zomer van 2012 nam John van den Brom het roer over. Vanaf dan kreeg Praet meer speelkansen.[4] Zo startte hij op 11 november 2012 in de basis tegen Club Brugge. Praet scoorde in de met 6-1 gewonnen topper het laatste doelpunt.[5] Twee weken eerder had hij ook gescoord in de ruime zege tegen AA Gent (5-0).[6] Praet belandde nadien weer op de bank, maar wist in het slot van play-off I opnieuw zijn plaats in het elftal af te dwingen. Op 19 mei 2013 startte hij ook in de basis in de titelwedstrijd tegen Zulte Waregem. Het duel eindigde op 1-1 waardoor Anderlecht voor het tweede jaar op rij kampioen werd.
Vanaf het seizoen 2013/14 werd Praet een titularis in het elftal van Van den Brom, die ook jongeren als Youri Tielemans en Leander Dendoncker in het eerste elftal liet debuteren. De 19-jarige Praet startte het seizoen als nummer tien, maar belandde vanaf december 2013 op de linkerflank.[7] Na het ontslag van Van den Brom in maart 2014 werd assistent-trainer Besnik Hasi tot hoofdcoach gepromoveerd. Ook onder Hasi bleef Praet als linkermiddenvelder uitgespeeld worden. Anderlecht won dat seizoen in play-off I zeven duels en veroverde zo voor het derde jaar op rij de titel. In de titelwedstrijd, tegen KSC Lokeren, loodste Praet zijn team met een assist en een doelpunt naar de zege (3-1).[8]
Praet begon ook het seizoen 2014/15 als linkermiddenvelder. Na enkele maanden werd hij door Hasi terug als nummer tien ingeschakeld. Op 16 september 2014 scoorde hij tegen Galatasaray zijn eerste doelpunt in de UEFA Champions League.[9] Op 14 januari 2015 won Praet de Gouden Schoen met een nipte voorsprong van vijf punten op Víctor Vázquez. De dag na de uitreiking van de Gouden Schoen raakte bekend dat Dennis Praet vier à zes weken out zou zijn vanwege een stressfractuur in de rug.
UC Sampdoria
In augustus 2016 werd Praet voor €8.000.000,- getransfereerd naar UC Sampdoria. De middenvelder tekende een vijfjarig contract in Italië. Op 28 augustus 2016 debuteerde hij in de Serie A als invaller tegen Atalanta Bergamo. Op 16 september 2016 volgde zijn eerste basisplaats in de thuiswedstrijd tegen AC Milan. In drie jaar Serie A maakte Praet een kleine metamorfose door. Van een sierlijke, soms frêle spelmaker ontwikkelde hij zich tot een hardwerkende, meer controlerende middenvelder met flink wat volume.
Leicester City
In de zomer van 2019, op deadline day een uur voor het verstrijken van de transfermarkt, wist Leicester City zich te versterken met de jonge Belg. Praet kwam over van UC Sampdoria voor € 19.200.000,- en tekende een contract voor vijf seizoenen. Rodgers wilde met Praet zijn driehoek op het middenveld - Ndidi, ex-ploegmaat Tielemans en Maddison - wat extra concurrentie bezorgen. Hij had ook de evolutie van Praet bij Sampdoria opgemerkt. De Leuvenaar was in Italië tactisch rijper geworden.[10] Op de tweede speeldag, amper tien dagen na zijn aankomst zat Praet al in de wedstrijdkern voor de verplaatsing naar Chelsea. Hij viel toen na 72 minuten in voor Choudhury in een wedstrijd in en tegen Chelsea. De wedstrijd eindigde op 1-1. De week erop verscheen hij zelfs aan de aftrap bij Sheffield United (1-2). Toch waren zijn wittebroodsweken niet één en al rozengeur en maneschijn. Tijdens de volgende twee speeldagen haalde Praet de selectie niet eens. Op 11 september 2021 scoorde hij tegen Southampton zijn eerste doelpunt in Engelse loondienst. Na zijn chaotische start en gependel tussen bank en basis vond Praet net voor de eerste lockdown eindelijk zijn draai. Hij duwde zelfs Tielemans uit de basis. In zijn debuutseizoen onder Rogers draaide hij, wanneer hij de kans kreeg, vlot mee, zonder een onuitwisbare prestatie op de mat te leggen.[11] Hij speelde 27 wedstrijden (13 basisplaatsen en 14 invalbeurten) in de Premier League, waarin hij goed was voor één goal en 2 assists.
Zijn tweede jaar Engeland begon veelbelovend. Door de blessure van Maddison kreeg hij zijn kans als nummer 10. Tot half januari was er geen vuiltje aan de lucht voor Dennis Praet in Engeland. De ex-Anderlecht-middenvelder was steeds vaker gaan spelen onder coach Brandon Rodgers, zowel in de Premier League als in de Europa League. Hij bleef zelden negentig minuten staan, maar werd graag gebruikt om Youri Tielemans of James Maddison rust te gunnen. Na een moeilijk eerste seizoen leek zijn carrière bij Leicester City eindelijk van de grond te komen. Er heerste het gevoel bij de fans dat hun ploeg beter speelde met Praet tussen de lijnen, zeker omdat er automatismen waren met Tielemans en Castagne. Begin 2021, tijdens een bekermatch tegen Stoke liep het fout. Hij stond drie maanden aan de kant door een spierscheur in de hamstrings.[12] Zijn uitstekende seizoenstart kreeg geen vervolg. Hij belandde weer op het tweede plan. Leicester streed voor de Champions League maar Praet kwam nauwelijks nog in actie.[13] Op 15 mei veroverde Leicester de FA Cup door met 0-1 te winnen van Chelsea. Dennis Praet bleef op de bank, maar mocht de FA Cup bij op zijn palmares schrijven.[14] Praet speelde 15 wedstrijden voor Leicester. Hierin scoorde hij één doelpunt en was hij goed voor één assist.
Torino
Bij de start van zijn derde seizoen bij Leicester City kwam hij geen enkele keer van de bank. Leicester liet weten dat Praet mocht beschikken bij een goed bod. Eind augustus 2021 vertrok hij terug naar de Serie A op huurbasis bij Torino voor één seizoen. In die overeenkomst stond ook een optionele aankoopoptie voor € 15.000.000,-. In de Serie A hoopt hij de draad weer op te pikken. Opnieuw naam te maken na een grijze passage in de Premier League.[15]
Op 12 september, de eerste wedstrijd van de competitie, debuteerde Praet als invaller tegen Salernitana. Praet mocht in de 74ste minuut invallen voor Pjaco bij een 2-0 stand. De wedstrijd eindigde uiteindelijk op 4-0. Op 30 oktober 2021 wist Praet te scoren tegen zijn ex-ploeg Sampdoria (2-0) en werd zo de eerste Belg sinds Enzo Scifo (op 9 mei 1993, Roma 4-5 Torino) die in het truitje van Torino scoorde.[16] Op 15 januari 2022 kroonde de Leuvenaar zich tot matchwinnaar met de winning goal tegen zijn ex-ploeg Sampdoria. De wedstrijd werd met 1-2 gewonnen.[17] In februari raakte Praet geblesseerd op training met een scheurtje aan het middenvoetsbeentje. Er werd gevreesd dat zijn seizoen voorbij was. Echter, eind april maakte hij zijn wederoptreden tegen Spezia. Praet pikte als invaller een halfuur mee in de 2-1 zege.[18] Praet speelde voor Torino 24 wedstrijden, waarvan 23 in de Serie A. Hierin scoorde hij twee keer en gaf hij evenveel assists.
Leicester City
Iedereen verwachtte dat Praet na zijn uitleenbeurt definitief in Torino zou blijven, waar hij een heel goed seizoen speelde, maar hij keerde vreemd genoeg terug naar Leicester. Twee seizoenen eerder was hij er nog op een zijspoor beland. Zelfs Brendan Rodgers was echt verbaasd, toen Dennis zei dat hij wilde blijven.[19] Praet kende nog twee wisselvallige seizoenen bij de Engelse club tot het einde van zijn contract medio 2024. Hij viel vaak naast de selectie en was vooral een wisselspeler.
Royal Antwerp
Op 6 september 2024 tekende de 30-jarige transfervrije Praet een contract voor twee seizoenen bij Royal Antwerp, met een optie voor een derde seizoen.
Op 6 november 2014 werd Praet door bondscoach Marc Wilmots voor het eerst geselecteerd voor de Rode Duivels. Hij maakte vervolgens zijn debuut op 12 november, toen hij in een oefenwedstrijd tegen IJsland mocht invallen in de 75e minuut voor Christian Benteke.
Daarna duurde het bijna 4 jaar, tot oktober 2018, dat hij terug opgeroepen werd voor de Rode Duivels. Op 16 oktober, in een oefenwedstrijd tegen Nederland mocht hij met de rust invallen voor Dries Mertens. Vanaf dat ogenblik behoorde Praet altijd tot de wedstrijdselectie van Roberto Martínez.