Moustakas' three-run blast in the fourth inning broke a 1-1 tie and his solo shot in the eighth put the Royals ahead 5-2.
Santana (7-6) recorded a third straight start of allowing two or fewer earned runs, surrendering a pair of tallies on four hits over seven innings. He walked one and struck out eight.
Twins starter Mike Pelfrey (4-9) was touched for four runs on eight hits over four full frames.
Joe Mauer, returning to the lineup after missing six games while on paternity leave, drove in a run for Minnesota.