Manny Malhotra added a goal and an assist for the Blue Jackets, who had 25 saves from Fredrik Norrena in their third straight win. Derrick Walser and Geoff Platt also scored, and Jason Chimera had three assists.
Doug Weight scored for St. Louis, which has lost three of four.
Modin scored 4:57 into the second period when he took a pass from David Vyborny and roofed the puck with a backhand shot to give the Blue Jackets a 3-1 lead. Alexander Svitov, who carried the puck past three Blues defenders and into the offensive zone, earned an assist on the play. It is the fifth time that Modin has scored at least 20 goals in a season.
The Blue Jackets took a 2-1 lead in the first period by scoring on two of their first seven shots. Walser scored his second goal of the year, and second in three games, when he put in a rebound of Chimera's shot 3:29 into the period.
After Weight scored on a 5-on-3 at 5:30 of the first period to make it 1-1, Malhotra answered 14:28 into the first period with a slap shot from the right circle.
Columbus made it 4-1 on Platt's goal 3:10 into the third period.
Weight's goal, his 13th of the season, came on the only power play the Blues converted in eight chances.
Columbus is 3-1-3 against the Blues this season and moved within five points of St. Louis for third place in the Central Division. The two teams meet again Tuesday night in St. Louis.
Notes: Blue Jackets' defenceman Rostislav Klesla, who suffered a hip pointer in a win over Detroit on Thursday, did not play. ... St. Louis' Jason Bacashihua started in goal because the team's top two goaltenders, Curtis Sanford (groin) and Manny Legace (knee) are on injured reserve. He made 22 saves. ... Chimera's three assists give him 32 points for the season, a career high. ... The Blue Jackets are 26-24-5 under coach Ken Hitchcock and 17-16-4 in Nationwide Arena.