PHILADELPHIA (AP) -- Two weeks ago at Miami, Zach Eflin allowed 10 hits, including three homers, and six runs in four innings.
What did the Phillies right-hander learn from that performance?
''Don't throw it down the middle every single time,'' Eflin joked Sunday.
Eflin took his own advice, throwing a seven-hitter for the first nine-inning complete game by a Phillies pitcher since September 2016, and Philadelphia beat the Marlins 5-1.
Elfin (3-3) struck out three, walked none and was rarely in trouble. He induced a pair of double-play balls, including one to end the eighth inning, and threw 77 of his 107 pitches for strikes.
''It was execution,'' Eflin said, comparing Sunday's outing to the last time he faced Miami. ''I kind of rode with my two-seamer a little more today.''
The complete game was the third of Eflin's career and the first since he shut out the Pirates in 2016, his rookie year. He was the first Philadelphia pitcher to finish what he started since an eight-inning complete-game loss by Ben Lively in September 2017.
Eflin's effort helped manager Gabe Kapler give a break to his bullpen, particularly Hector Neris and Adam Morgan.
''We didn't have any doubt about sending Zach back out there for the ninth, most notably because he was efficient,'' Kapler said. ''He never really had any stressful innings. There wasn't a whole lot of hard contact throughout the game. He was executing his fastballs away. He was executing his sliders on the plate, off the plate. He was elevating well. So there was really never a moment of feeling like we didn't want to keep pushing him through that game.''
Jean Segura had three of just four hits overall for the Phillies' offense, including an RBI triple, and he scored twice. Philadelphia took three of four from Miami after dropping the series opener.
Segura lined a triple into the right-field corner in the third that scored Andrew McCutchen, and Segura scored two pitches later on Harper's groundout.
Segura scored again in the sixth on a wild pitch to Nick Williams that ended Lopez's day and put the Phillies ahead 4-1.
''He tried to go down and it just got away,'' Marlins manager Don Mattingly said.
''At that point it's 3-1 and we're in the game. Obviously we didn't get anything going all day long but you feel like you're basically just a base hit and a homer or a couple runners and a gapper away from tying the game.''
Miami got its only run off Elfin in the fourth on Miguel Rojas' infield single.
Harper's groundout gave him 20 RBIs this season. It's the first time in Philadelphia franchise history that three players have driven in 20 or more runs in April. The others are Hoskins and Maikel Franco.
The Phillies have 98 extra-base hits in 28 games. It's the most extra-base hits in franchise history before the end of April since at least 1913.
Marlins: INF Neil Walker (hamstring) was out of the lineup for the third consecutive game, though he appeared off the bench Friday and Saturday.
Phillies: Segura was hit in the head with a pitch in the second inning Saturday and left the game. He returned to the lineup Sunday in his normal spot, batting second.
Marlins: Right-hander Sandy Alcantara (1-2, 4.50 ERA) pitches the opener of a two-game home series against Cleveland on Tuesday night.
Phillies: Right-hander Vince Velasquez (1-0, 1.99) starts Tuesday as Philadelphia welcomes Detroit for a two-game set.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports