"It's a tough negotiation, but I'm happy it's done and I'm happy for two more years here," the forward said Friday. "It's going to be a lot of fun."
The 22-year-old was a restricted free agent. He scored 12 points (three goals, nine assists) in 33 regular-season games with the Blues last season and had three assists in four Stanley Cup Playoff games.
St. Louis held its first training camp practice Thursday and opens the season Oct. 16 at the Colorado Avalanche.
"We got it done in time," Thomas said. "That's all that matters. … We've got a great group and a competitive group. I can't wait to get the season going."
Selected by the Blues in the first round (No. 20) of the 2017 NHL Draft, Thomas has scored 87 points (22 goals, 65 assists) in 169 regular-season games and 12 points (two goals, 10 assists) in 33 playoff games.
Thomas won the Stanley Cup with St. Louis in 2019.
NHL.com independent correspondent Louie Korac contributed to this report