Bowman startete in einigen Rennen der Pro Cup Series im Jahre 2010, bevor er 2011 in die NASCAR K&N Pro Series East wechselte. Dort wurde er Sechster in der Meisterschaft und gewann den "Rookie Of The Year"-Award.
2013 war geplant, dass er die komplette Saison für RAB Racing bestreiten würde. Dabei holte er auf dem Texas Motor Speedway seine erste Pole-Position in der Nationwide Series.[4] Beim zweiten Rennen in Texas stand er wieder auf Pole. Vor dem letzten Rennen der Saison wurde er jedoch von seinem Team entlassen.[5] Bowman ended the season with six top-tens in 32 starts.[6]
2016 startete er in neun Rennen für JR Motorsports. Dabei holte er sich die Pole-Position auf dem Michigan International Speedway und beendete sieben der neun Rennen in den Top 10. Trotz der starken Leistung gelang es ihm nicht, genügend Sponsoren für einen Vollzeitvertrag bei JR Motorsports aufzutreiben.[7]
Camping World Truck Series
Bowman fuhr 2015 ein Rennen für JR Motorsports in Michigan, wobei er den 11. Rang belegte. 2017 ersetzte er bei GMS RacingJustin Haley für ein Rennen auf dem Atlanta Motor Speedway, da dieser zu dem Zeitpunkt zu jung war und erst beim nächsten Rennen auf dem Martinsville Speedway das Mindestalter erreichte. Bowman erreichte in Atlanta den sechsten Rang.
Bowman verließ Tommy Baldwin Racing im Januar 2016. Nachdem Dale Earnhardt junior verletzungsbedingt im Laufe der Saison ausgefallen war, wurde Bowman, zusammen mit Jeff Gordon, als Ersatzfahrer präsentiert. In seinem ersten Rennen für Hendrick Motorsports auf dem New Hampshire Motor Speedway war er während des Rennens in den Top-10 dabei. Jedoch führte ein Reifenschaden in Runde 272 dazu, dass er das Rennen auf dem 26. Platz beendete.[8]
Seine erste Pole konnte Bowman in Phoenix holen. Im Rennen führte Bowman für 197 Runden. Sechs Runden vor Schluss versuchte er Matt Kenseth zu überholen und somit in Führung zu gehen. Dabei wurde er jedoch von hinten von Kyle Busch angeschoben und kollidierte mit Kenseth, wobei dieser sich drehte. Schlussendlich landete Bowman auf dem sechsten Schlussrang.[9]
Beim Advance Auto Parts Clash im Jahre 2017 fuhr Bowman abermals den Chevrolet mit der Nummer 88. Earnhardt Jr. wäre ebenfalls startberechtigt gewesen, ließ jedoch Bowman als Dank für seine Leistung im Vorjahr den Vortritt.[10] Bowman beendete den Clash auf dem dritten Rang.
Am 6. Oktober 2020 wurde bekannt gegeben, dass Bowman zusammen mit seinem Crew Chief Greg Ives die Nummer 48 von Jimmie Johnson nach dessen Karriereende in Nascar übernehmen wird. Dabei wird Ally Financial weiterhin die Nummer 48 sponsern.[13]
In der Saison 2021 erreichte er Platz 14, wobei er in den Playoffs bereits in der "Round of 12" ausschied. Zu Beginn der 2021er Saison konnte sich Bowman die Pole für das 2021 Daytona 500 sichern[14]. Nach durchwachsenem Saisonbeginn gewann er das 2021 Toyota Owners 400 auf dem Richmond Raceway am 18. April 2021[15]. Es folgten Siege auf dem Dover International Speedway am 16. Mai und beim ersten der beiden Rennen auf dem Pocono Raceway am 26. Juni[16][17]. Außerdem konnte er das Xfinity 500 auf dem Martinsville Speedway am 31. Oktober gewinnen, wobei er zu diesem Zeitpunkt schon nicht mehr in den Playoffs vertreten war. Allerdings touchierte er sieben Runden vor Schluss den bis dahin in Führung liegenden Denny Hamlin, welcher sich daraufhin drehte. Dies führte dazu, dass Hamlin versuchte, Bowman beim Burn-out auf der Ziellinie zu blockieren.[18]