Brayden Schenn, Jaden Schwartz, Kyle Brodziak and Colton Parayko collected assists for St. Louis. Carter Hutton recorded 35 saves as the Blues won for the first time since defeating Winnipeg on Feb. 9.
Andreas Athanasiou scored the lone goal for Detroit, cutting a two-goal deficit in half in the final minutes of the game. Jimmy Howard made 23 saves for the Red Wings, who had won their previous two games.
Upshall also scored in the first meeting on Dec. 9, a 6-1 Blues victory.
Both teams made moves at Monday's trade deadline with an eye to the future.
Detroit was playing its first game since trading Tomas Tatar, the team's leading goal-scorer last season, to the Vegas Golden Knights for three draft picks.
The Blues traded away veteran center Paul Stastny, who was fourth on the team with 40 points, to the Winnipeg Jets for two draft picks and forward Erik Foley.
St. Louis lost its first game without Stastny 8-3 to the Minnesota Wild on Tuesday.
The Red Wings put 15 shots on goal in the first period, but Hutton was up to the task.
St. Louis broke through early in the second period. Parayko skated in along the left side and shoveled a shot that Howard stopped. Upshall then pounced on the rebound and scored his seventh goal of the season at the 1:12 mark.
The Blues had a 12-8 advantage in shots on goal during the middle period.
Pietrangelo scored his 11th goal to give St. Louis some breathing room with 5:23 remaining. Schwartz passed the puck from behind the net to Pietrangelo, who fired a shot from the right circle over Howard's left shoulder.
With Howard off the ice for an extra skater, Athanasiou fired in a rebound after Tyler Bertuzzi hit the post with 1:45 remaining.
The Red Wings barely averted their first shutout since dropping a 1-0 decision to the Buffalo Sabres on Oct. 24.
--Field Level Media
Detroit | St. Louis | |
Andreas Athanasiou 1 | Points | Alex Pietrangelo 1 |
Andreas Athanasiou 1 | Goals | Alex Pietrangelo 1 |
Tyler Bertuzzi 1 | Assists | Kyle Brodziak 1 |
N/A | Power Play Goals | N/A |
N/A | Short Handed Goals | N/A |
Jimmy Howard .920 | Save Percentage | Carter Hutton .972 |
Jimmy Howard 23 | Saves | Carter Hutton 35 |
Team | Shots | Goals | Power Play | Penalty Kill | Penalty Mins | Face Offs Won |
Detroit | 36 | 1 | 0-2 | 1-1 | 6 | 31 |
St. Louis | 25 | 2 | 0-1 | 2-2 | 8 | 29 |