Bowles made his major league debut for the Blue Jays at age 24. That year, had an earned run average of 0.00 in 3+2⁄3 innings. In 2002, Bowles had an earned run average of 4.05 in 20 innings, going 2–1.[1] In 2003, Bowles recorded a 2.57 earned run average in 7.0 innings.[2] On October 15, 2003, Bowles was granted free agency. Less than two months later, Bowles signed with the Milwaukee Brewers. After failing to make the Major League roster in 2004, Bowles was released by the Brewers on July 8. On July 21, he signed with the Colorado Rockies. Bowles, however, became unhappy in the Rockies system. On October 15, 2004, Bowles was again granted free agency. On March 6, 2005, Bowles was signed by Chicago White Sox. After failing to make the roster, Bowles was released on March 30, only 24 days after he was signed. After not playing in 2005, Bowles was signed on March 4, 2006, by the Baltimore Orioles. After the season, Bowles was granted free agency. On November 13, 2006, Bowles was signed by the San Francisco Giants. He did not, however, play a game as Giant. After playing the 2007 season for the Triple-A Fresno Grizzlies, Bowles retired. Bowles is now the head varsity baseball coach and teacher for Palos Verdes Peninsula High School.
At the time of his retirement Bowles had a 2–1 record, a 3.23 earned run average, 17 walks, and 25 strikeouts. His lifetime fielding percentage was .800.