The 35-year-old left-winger had 27 goals and 31 assists in 79 games between the Blues and Thrashers. He was set to become an unrestricted free agent Sunday.
Terms of the deal were not released. Tkachuk made US$3.8 million last season.
"We are excited to be able to bring a player of Keith's calibre back to the St. Louis Blues," team president John Davidson said in a statement. "Keith played great hockey last season and we are thrilled to have him wearing the Bluenote again."
Tkachuk, a two-time all-star, was dealt to the Thrashers on Feb. 25 for Glen Metropolit, first-and third-round draft picks in 2007 and a second-round pick in 2008. The six-foot-two, 225-pounder finished with seven goals and eight assists in 18 games in Atlanta, helping the Thrashers reach the Eastern Conference playoffs.
The Thrashers promptly lost their first-round series in four games to the New York Rangers.
Tkachuk has 473 goals and 453 assists in 976 career games with Winnipeg/Phoenix, St. Louis and Atlanta.