Blues general manager Doug Armstrong announced Wednesday that the team has agreed to a deal worth $17.4 million US with the 29-year-old.
Steen's current contract would have made him an unrestricted free agent this summer, instead he'll carry a $5.8 million cap hit over the next three seasons.
The Blues winger has posted 22 goals, 14 assists and 36 points this season. His 22 goals are second to only Alexander Ovechkin's total of 28.
Steen was the Toronto Maple Leafs' first round draft pick in 2002 (24th overall) and was traded to the Blues, along with Carlo Colaiacovo, for Lee Stempniak four years ago.
In 570 career games, Steen has 145 goals and 194 assists.