MIAMI - Major-league batting leader Dee Gordon beat out two infield hits Tuesday night, and the Pittsburgh Pirates couldn't throw him out at the other bases, either.

Gordon tied a career high with four stolen bases and scored twice to help the Miami Marlins to a 5-2 victory.

"He's a threat," Pirates starter Charlie Morton (8-5) said. "When he puts the ball in play, the chances are he's going to get on base. It's almost as if you need to strike him out."

The speedy Gordon provided a spark for an offence that has sputtered without injured slugger Giancarlo Stanton, who is expected to be sidelined another 10 days.

"You've got to do what you can and scratch by," Gordon said. "We've got our best player down right now, so we've got to be 90 feet at a time."

Miami's Brad Hand (4-3) pitched into the ninth inning. He came into the game 7-20 as a starter, worst among all active pitchers, according to STATS, but has won three of his past four starts.

"I feel real confident about myself, and I think I can start here," Hand said. "I'm trying to put together a few good starts to end the season."

A.J. Ramos came on with two on and no outs in the ninth and earned his 22nd save in 27 chances.

Gordon scored the Marlins' first run and reached on a bunt single to begin their three-run sixth against Morton. Gordon turned two double plays at second base, including a nifty one started by third baseman Martin Prado.

Gordon hiked his average to .333, and he leads the majors with 156 hits.

"He was the catalyst," manager Dan Jennings said. "He's our sparkplug."

The Marlins had five doubles, including two run-scoring doubles by Justin Bour. Christian Yelich, who was activated from the disabled list before the game, doubled home a run and singled. Adeiny Hechavarria added a double and a triple.

Two Pirates were hit by pitches Monday, and Hand plunked Andrew McCutchen in the left foot on Tuesday. But the left-hander didn't issue a walk while allowing the Pirates nine hits and two runs.

"That's a good ballclub," Jennings said. "When you're able to pitch that way against that team, it says a lot about Brad and his growth."

Miami beat Pittsburgh for the first time in five meetings this year, and snapped the Pirates' five-game road winning streak.

Bour hit a two-out double in the fourth to drive in the Marlins' first run. They took a 2-1 lead in the fifth with an unearned run, with Yelich scoring from first when McCutchen mishandled J.T. Realmuto's single to centre.

Prado singled home a run in the sixth, and Bour and Yelich each had an RBI double to make it 5-1.

The Pirates scored in the first on a two-out RBI single by Aramis Ramirez, and Hand retired the side in order only twice.

"The first two times through the lineup, I thought we swung the bat well against him," Pirates manager Clint Hurdle said. "We hit some balls hard. We didn't have any results."

HOMECOMING

Pirates 1B Michael Morse, traded by the Marlins last month, started Tuesday and went 1 for 3. The Marlins signed Morse to a two-year, $16 million contract last off-season but he batted only .213 for them.

"Sometimes things don't work for the reasons they don't work," Hurdle said. "We like his bat."

TRAINER'S ROOM

Pirates: RHP A.J. Burnett (right elbow) pitched two innings of a simulated game and is scheduled to pitch three innings in a simulated game Sunday.

Marlins: RHP Jarred Cosart (vertigo) is to throw as many as 70 pitches in a rehab game at Single-A Jupiter on Thursday. ... RHP Jose Urena (bruised left knee) will throw a bullpen session Wednesday.

COMING UP

Pirates LHP Jeff Locke (6-8, 4.56) will start Wednesday against LHP Chris Narveson (1-0, 3.86), making his first major league start since 2012.