The NHL offers St. Louis anticipated never materialized as teams lost interest in him. Only the Ottawa Senators offered him a tryout prior to the 1997–98 NHL season. When they released him, St. Louis signed a two-year contract with the Cleveland Lumberjacks of the International Hockey League (IHL) that included a clause allowing him to leave the team if offered an NHL contract. He had 50 points in 56 games for Cleveland, catching the attention of the Calgary Flames, who signed him to a contract on February 18, 1998. He was assigned to their then American Hockey League (AHL) affiliate, the Saint John Flames, where he scored 26 points in 25 regular season games. He then added 20 points in 20 playoff games as Saint John reached the Calder Cup finals, losing in six games to the Philadelphia Phantoms.
St. Louis earned a spot on the Calgary roster to begin the 1998–99 season and made his NHL debut on October 9, 1998, against the San Jose Sharks. He scored his first goal on October 20 against Dallas Stars' goaltender Roman Turek. He began the season playing with Calgary's top forward, Theoren Fleury, but was quickly demoted to the fourth line, and often sat out of the lineup. He appeared in only 13 games in Calgary, spending the majority of the season in Saint John where he led the AHL squad with 28 goals and 62 points. He began the 1999–2000 season with Saint John, but earned a recall to Calgary after scoring 26 points in 17 games. St. Louis completed his first full NHL season with 3 goals and 18 points in 56 games. Pleased with his progress, general manager Al Coates picked up St. Louis' contract option for the 2000–01 season. However, the organization fired Coates and his staff that summer and the new management team was not interested in retaining St. Louis. The Flames exposed him in the 2000 NHL Expansion Draft, but after he went unselected, the team bought out his contract and made him an unrestricted free agent.