Tkachuk's 13th goal of the season was his first in 15 games. It snapped a 1-1 tie 7:36 into the third period. Tkachuk has 54 points in 63 career games against Edmonton.
Defenseman Erik Johnson got St. Louis even at 1 with a power-play goal in the second period.
Edmonton took a 1-0 lead in the first on Patrick O'Sullivan's unassisted goal.
The 10th-place Blues began the day 10 points behind Colorado and the postseason cutoff in the Western Conference. St. Louis has seven games remaining.
The veteran Tkachuk gave the Blues reason to believe with his clutch goal. Parked in front of the crease, Tkachuk used his stick to redirect a shot by Brad Winchester.
Johnson had tied it with a slap shot — off a feed from T.J. Oshie — from the top of the slot past goalie Devan Dubnyk at 10:43 of the second.
St. Louis had three power-play chances in the second period and outshot the Oilers 16-6.
Edmonton netted its only goal when O'Sullivan picked off a pass by Blues defenseman Barret Jackman. O'Sullivan beat goalie Chris Mason between the pads at 10:22 of the first. Mason finished with 23 saves.
Dubnyk stopped 29 shots in the loss.
NOTES: St. Louis had scored first in its previous six games. ... The Blues have won five of seven at home and 11 of 16 overall. St. Louis is 14-18-5 at home. ... The Oilers are on pace to record the worst record in franchise history. With seven games remaining, Edmonton (24-44-7) is last in the NHL with 55 points and seven games left. The 1992-93 Oilers (26-50-8) had 60 points in an 84-game schedule.