The Phillies were the road team in their home ballpark for the opener, a makeup game from earlier in the season.
Eflin (3-2) threw 92 pitches for his third career shutout and fifth complete game, though this one was seven innings. All of his strikeouts were swinging, including three in the first on curveballs.
Harper hit 878 feet of homers in a loss Thursday night against the Mets and connected for his third shot in two games to ignite a five-run fifth against Robbie Ray (2-5).
Toronto has lost four in a row but entered with a 4 1/2-game lead over Seattle for the final wild card in the AL.
The injury-depleted Phillies, missing Nos. 2, 4 and 6 hitters Rhys Hoskins, J.T. Realmuto and Jean Segura, improved to 25-25. They began the day with a half-game lead over St. Louis for the last wild card in the NL.
Didi Gregorius lined an RBI double off the right-field fence in the first to give the Phillies a 1-0 lead after Ray issued consecutive walks to Harper and Alec Bohm with one out. Gregorius just missed a three-run homer.
The Jays surrendered 43 runs in a three-game sweep at the Yankees, and have been outscored 50-15 in the last four games.
Phil Gosselin added an RBI single and Andrew Knapp lined a two-run triple in the fifth to make it 6-0.
Ray gave up five runs and five hits in 4 1/3 innings in his third start for the Blue Jays after being acquired from Arizona before the trade deadline.
Eflin allowed only two singles to Cavan Biggio through six before Lourdes Gurriel Jr. and Randal Grichuk singled in the seventh. The right-hander preserved the shutout by striking out Travis Shaw with runners on second and third for the final out.
The Phillies sent right-handers Juan Geraldo, Brandon Ramey and Israel Puello to the Milwaukee Brewers to complete the trade for right-hander David Phelps on Aug. 31.
Phillies: Segura wasn't in the lineup after he was drilled with a 98 mph fastball in the left elbow Thursday night. ... Realmuto (hip) is expected to miss the weekend. ... Hoskins (elbow) is uncertain to return this season. ... OF Jay Bruce was reinstated from the injury list.
RHP Ross Stripling (3-3, 5.88 ERA) starts the second game for the Blue Jays. The Phillies hadn't announced a starter but RHP Ramon Rosso (0-1, 7.88) was added as the 29th man for the doubleheader and could take the mound to open.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
Copyright 2020 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.