Acquired in the offseason from San Francisco, Hernandez has emerged as the Expos' ace and been one of baseball's hottest pitchers. Hernandez (14-7) won his fourth straight decision, allowing seven singles and a double en route to the sixth complete game in his last ten starts. The Cuban right-hander walked one, struck out nine and threw 85 of 131 pitches for strikes.
Guerrero gave Hernandez an early lead with his homer in the first inning off ineffective Randy Wolf (12-9).
Wil Cordero added three RBI for the Expos, who pulled within three games of Philadelphia and Florida in the National League wild card race.
The game drew a crowd of 30,501. The Expos are 5-0 at Olympic Stadium this season when drawing at least 20,000.
Wolf was ripped for a career-high nine runs and six hits in 1 2/3 innings. The All-Star left-hander has been tagged for 16 runs and 13 hits over six innings in losing his last two starts.
Reliever Carlos Silva delivered an RBI double for the Phillies, who fell to 1-6 on a season-high 13-game road trip. Philadelphia has lost 14 of its last 17 games away from Veterans Stadium.
After Hernandez worked around two singles in the top of the first, his temmates gave him all the offense he needed in the bottom of the inning. Orlando Cabrera drew a one-out walk and Jose Vidro singled before Guerrero crushed a 1-0 pitch over the right-center field wall for his 18th homer.
Wolf set down the first two batters in the second before he lost the strike zone and failed to record another out. Brad Wilkerson walked and Vidro was hit by a pitch around a single by Cabrera. Wolf also walked Guerrero to force in a run and Cordero followed with a three-run double, giving the Expos a 7-0 lead. After Todd Zeile walked, Jose Macias stroked a two-run double to end Wolf's night.
Hernandez retired ten straight batters until hitting rookie Chase Utley with a pitch with one out in the fifth. One out later, Silva stroked an RBI double.
After the Phillies stranded two runners in scoring in position in the sixth, the Expos tacked on three runs in the bottom of the inning. Vidro delivered an RBI single and third baseman Placido Polanco committed an error that allowed two more runs to score.