The Cardinals swept the four-game, home-and-home I-70 interleague series.
Fowler ambushed the first pitch from reliever Neftali Feliz, lofting it into the bleachers behind the St. Louis bullpen in right-center for his 15th homer of the year. It was the third career slam for Fowler.
St. Louis (59-56) won its sixth consecutive game, matching its season high, and drew within a game of the idle Chicago Cubs for first place in the National League Central.
Fowler knocked in a career-high five runs.
Kansas City (57-57) pulled within 7-6 with a three-run eighth. Pinch hitter Brandon Moss drilled a two-run double off the right-center-field wall, and Whit Merrifield followed with a sacrifice fly.
However, Trevor Rosenthal retired Lorenzo Cain, who was 4-for-4 prior to the at-bat, on a deep flyout to right to strand Moss at third. Rosenthal then worked the ninth for his 10th save in 12 chances.
Paul DeJong added an RBI double in the eighth to provide insurance for the Cardinals, who have scored 54 runs in their winning streak.
Royals starter Jason Hammel pitched five-plus innings, giving up two runs and three hits with a walk and seven strikeouts.
St. Louis' Lance Lynn worked six innings, yielding three runs (two earned) and six hits. He walked five, tying his season high, and struck out three.
Tyler Lyons (1-0) got the last two outs of the seventh to earn the win, while Mike Minor (5-4) was tagged with the loss after giving up a leadoff single to Matt Carpenter in the seventh.
Kansas City opened the scoring in the second inning with an unearned run, the result of Kolten Wong's bobble of Mike Moustakas' slow bouncer to second that started the frame. Drew Butera's bases-loaded fly ball to right-center fell in for a hit that cashed in the mistake.
The Royals made it 3-0 in the fifth with a pair of two-out runs.
Following a Cain single and an Eric Hosmer walk, Melky Cabrera laced a two-run triple to right. Jose Martinez's full-length reach for the ball didn't pan out as the ball struck the heel of his glove and fell to the turf.
Hammel worked around traffic in the first, second and fourth innings. He stranded runners in scoring position each time, allowing only two hits through five innings and striking out seven.
NOTES: Kansas City placed RHP Trevor Cahill (right shoulder impingement) on the 10-day disabled list and recalled RHP Kevin McCarthy from Triple-A Omaha. McCarthy is 1-0 with a 2.14 ERA in 16 relief appearances with the Royals this year. ... St. Louis won Wednesday night despite allowing 15 hits, only the 14th time since 2000 the Cardinals were able to do that in a nine-inning game. ... Kansas City LF Alex Gordon was back in the lineup Thursday night, batting seventh after a two-game break from starting and going 1-for-3 to raise his average to .198.