MIAMI -- Jose Berrios was on top of his game, even if he didn't have his top velocity.
Berrios struck out a season-high 11 in seven innings and the Minnesota Twins hit three homers in a 7-4 win over the Miami Marlins on Wednesday night.
"He threw the ball phenomenally," Twins manager Rocco Baldelli said. "His command was tremendous. I think he had really good action on all of his pitches. He didn't even pitch at the top of his velo, but it didn't matter. With what he was able to do, mix all of his pitches, and throw them all where he wanted, he was basically able to do anything he wanted to out there. It was fun to watch."
Max Kepler hit his 29th homer of the season, Mitch Garver added a three-run shot and Eddie Rosario had a two-run home run as the Twins won for the fifth time in six games. Minnesota leads the majors with 209 home runs, 16 shy of the club record set in 1963. It was the 32nd time this season the Twins hit at least three homers in a game.
"It's a dangerous club," Marlins manager Don Mattingly said. "And you have to be specific where you put the ball. They show what they do."
Berrios (10-5) retired the first 12 batters he faced, including six on strikeouts, before Neil Walker led off the fifth inning with a dribbler down the third-base line.
"When I finished the play after the throw I saw my teammates say, 'come on, come on,' I said, 'oh I had a perfect game,' but before that, I didn't think about it," Berrios said.
Starlin Castro followed with a base hit to center. The 25-year-old right-hander settled in and retired the next nine batters before being lifted with a big lead.
"I didn't feel like I had a lot of power, but I had good command with each pitch," Berrios said.
He allowed just two hits and didn't walk a batter while lowering his ERA to 2.80.
"Some of the best stuff I've seen out of him," said Garver, a catcher.
Miami's Brian Anderson hit a grand slam in the ninth inning to cut the Marlins' deficit to 7-4.
Taylor Rogers came on to strike out the final two batters, earning his 17th save in 22 chances.
Garver's three-run homer, his 20th, snapped an 0-for-17 skid and gave the Twins a 3-0 lead in the third.
"He hit that ball really good to get it out where he did," Baldelli said.
The Twins added four runs on five hits in the fifth inning. Kepler led off with a homer. After Garver singled, Rosario connected for a two-run homer to right field. Marwin Gonzalez doubled to give Minnesota a 7-0 lead.
"They're a lot like L.A. (Dodgers) for me," Mattingly said. "You have to be specific where you get the ball. You can't give them a bunch of runners because you end up giving up three-run homers."
Anderson's slam, his second of the season, came off Sean Poppen after the Marlins opened the inning with three straight singles.
Marlins starter Sandy Alcantara (4-10) allowed seven runs in 4 2/3 innings.
"I am extremely mad," Alcantra said through a translator. "It is something that's been going on for several starts."
The Twins hit 52 home runs in July, marking the fourth consecutive month this season they have reached the 50 plateau, as they capped the month with a 13-11 record.
Alcantara was named to his first All-Star team this season, but has struggled since the break going 0-2 with a 7.89 ERA in four starts.
"Since the All-Star break he hasn't been that good," Mattingly said.
Marlins: OF Garrett Cooper (hamstring) was held out of the starting lineup, but did have a pinch-hit appearances. "Kind of day to day it seems like right now," Mattingly said. "I'd like to get him healthy totally. He's had a lot of leg things been going on, feels like over a month where it's hamstring and groin tight." ... OF Jon Berti (oblique) was reinstated from the injured list.
Twins: RHP Michael Pineda (7-5, 4.30 ERA) will pitch Thursday's series finale, looking to stay hot with a 3-2 record and 2.87 ERA over his last eight starts.
Marlins: RHP Jordan Yamamoto (4-2, 3.64) allowed a career-high six runs on two hits over four innings in a loss against Arizona.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP—Sports