Dion Cools begon op jonge leeftijd met voetballen bij Tempo Overijse. In 2005 stapte hij over naar de jeugdopleiding van Oud-Heverlee Leuven. Daar speelde hij zich in 2010 in de kijker van RSC Anderlecht. Cools verhuisde naar de hoofdstad, waar hij bij het elftal onder 15 jaar een ploeggenoot werd van onder meer Charly Musonda Jr. en Andy Kawaya. Het elftal werd in 2011 kampioen in zijn jeugdreeks.[2] Na een seizoen keerde Cools terug naar Oud-Heverlee Leuven. Hij maakte er twee jaar deel uit van de beloften alvorens de overstap te maken naar het eerste elftal.[3]
Op 3 augustus 2014 maakte Cools onder coach Ivan Leko zijn debuut in het eerste elftal van tweedeklasser Oud-Heverlee Leuven. Hij startte toen in de uitwedstrijd tegen Racing Mechelen in de basis. Nadien groeide hij uit tot een vaste waarde. Ook na het ontslag van Leko en de komst van trainer Jacky Mathijssen in december 2014 bleef Cools een titularis. In mei 2015 nam hij met Oud-Heverlee Leuven deel aan de eindronde om promotie. Cools miste geen enkele minuut van de eindronde en promoveerde met de Leuvense club opnieuw naar Eerste Klasse.
Op 23 juni 2015 tekende Cools een contract voor vier seizoenen bij Club Brugge. Hij veroverde twee Belgische landstitels en twee keer de Belgische Supercup. Cools werd een vaste waarde onder toenmalig coach Michel Preud'homme in het seizoen 2016/17 omdat de Nederlander Ricardo van Rhijn niet helemaal kon overtuigen na het vertrek van rechtsachter Thomas Meunier naar Paris Saint-Germain. Cools bleef ook een vaste waarde onder de nieuwe coach Ivan Leko, maar in diens tweede en laatste seizoen als hoofdcoach verdween Cools uit beeld en werd de Angolees Clinton Mata een belangrijke pion achterin. Cools kwam nauwelijks aan spelen toe.
Cools tekende op 31 januari 2020 een contract bij de Deense topclub FC Midtjylland, nadat hij niet meer in de plannen paste van Club Brugge-coach Philippe Clement.