Josh Willingham and Chris Parmelee also homered for the Twins, who finished June with a 14-13 record - their first winning month in almost a year.
The Twins took the opener 7-2 as Scott Diamond pitched eight solid innings and Trevor Plouffe homered.
|More on Royals-Twins|
|More MLB coverage|
Pitching in front of his hometown fans, De Vries (2-1) struck out a career-high six and held the Royals to five hits. Kansas City's lone run against him came on Billy Butler's homer leading off the second.
Luke Hochevar (5-8) allowed five runs and eight hits, including Minnesota's three homers.
A night after throwing five relief innings, the Twins' bullpen was needed for only four combined in the doubleheader thanks to Diamond and De Vries.
De Vries struck out four in the first two innings, fanning Jarrod Dyson and Alcides Escobar to work out of a second-inning jam with runners at second and third.
Alex Burnett, Tyler Robertson and Jared Burton each pitched an inning of scoreless relief.
Hochevar entered the game having thrown 16 2-3 consecutive scoreless innings after stopping Houston and Tampa Bay.
After Mauer's two-out single in the first, Willingham homered. In the second, Parmelee hit his first homer of the season on a shot to deep right.
Mauer's solo homer to left-center, the former AL MVP's first since June 2 and fourth overall, barely cleared the wall to make it 4-1 in the third.
Prior to Saturday, Hochevar had given up only two home runs in his previous 42 2-3 innings.
Trevor Plouffe, who homered in the first game, scored on Darin Mastroianni's RBI single in the sixth.
Easily the Twins' most effective starter since being called up in May, Diamond (7-3) allowed two runs and six hits to give Minnesota a big lift.
Jonathan Sanchez (1-4) didn't fare nearly as well. While Diamond cruised through Kansas City's lineup, Sanchez issued six walks and was done after 4 1-3 innings. Both starters finished with 101 pitches.
Minnesota strung together five consecutive hits to open a 6-0 lead in the fifth inning, including a strange RBI single from Brian Dozier.
With one out and runners on first and second, Dozier's bouncer hit the ground behind him and rolled fair. While Sanchez and catcher Brayan Pena scrambled after the ball, Dozier sprinted safely to first and Ryan Doumit scored all the way from second.
Alexi Casilla added a two-run double and Denard Span had an RBI single before Royals manager Ned Yost brought in Vin Mazzaro.
Yuniesky Betancourt drove in Kansas City's first run with a groundout in the sixth. He also singled in a run in the eighth.
Diamond struck out four and walked two while pitching eight innings for the second consecutive start. Glen Perkins finished the seven-hitter.
Sanchez pitched five effective innings to win at the Los Angeles Angels in his first start of the season on April 8, but has struggled since that victory. He is 0-4 with a 7.19 ERA in his last nine starts.
The doubleheader was a makeup of an April 28 rainout.