CAPE ELIZABETH — Justin Guerette caught a 23-yard touchdown pass and forced a last-gasp incompletion as undefeated Cape Elizabeth withstood a fourth-quarter rally by Mountain Valley to secure a 20-12 win in an Class C South game Friday night.

Mountain Valley (1-4) trailed 20-6 after three quarters but scored on a 39-yard run by Mike Provencher early in the fourth.

They took over again on their own 3 and drove to the Cape 28 before a sack and a hurried fourth-down pass ended their upset bid.

After spotting Mountain Valley a 6-0 lead, Cape Elizabeth (5-0) scored twice in the second quarter. Ryan Weare ran in from the 1, and Matt Graham caught a touchdown pass of 17 yards from Jack O’Rourke.

Ben Ekedahl kicked both PATs for a 14-6 halftime lead.

BIDDEFORD 21, YORK 0: Lucas Rhoy had 24 carries for 130 yards and a pair of touchdowns as the Tigers (3-2) beat the Warriors (1-4) at York.

Rhoy broke a scoreless deadlock with a 1-yard touchdown run in the third quarter, then added a 39-yard TD run. Joey Curit threw a 49-yard touchdown pass to Jeremy Lugiano later in the third quarter.

SANFORD 49, LEWISTON 14: Peter Hegarty rushed for 115 yards on 20 carries and scored four touchdowns to lead the Spartans (2-3) over the Blue Devils (2-3) at Sanford.

Sanford quarterback Frank Veino completed 7 of 9 passes for 86 yards and a touchdown and rushed for 63 yards and one touchdown.

Hegarty scored twice in the second quarter as Sanford turned a 6-6 tie into a 28-14 lead.

James Roche caught Veino’s TD pass, and Sam Anderson added a 7-yard touchdown run for the Spartans.

WESTBROOK 30, NOBLE 0: Bailey Ryan caught a pair of touchdowns from Bailey Sawyer, and Zack Hutchins and Stephen Shackley each rushed for a score as the Blue Blazes (2-3) pulled away from the Knights (2-3) in the second half at North Berwick.

Miece Loureiro rushed for 142 yards on 13 carries, while Hutchins finished with 112 yards on 16 carries.

Sawyer and Ryan connected for a 10-yard touchdown pass in the second quarter to give Westbrook a 7-0 halftime lead, then struck again in the third quarter for a 4-yard TD.

Hutchins and Shackley each added a 1-yard touchdown run in the fourth quarter.

WINDHAM 42, EDWARD LITTLE 0: Desmond Leslie rushed for a pair of touchdowns and also threw a touchdown pass to Kyle Kilfoil as the Eagles (4-1) scored 35 points in the second quarter to pull away from the Red Eddies (2-3) at Auburn.

Cam Hoffses added a 61-yard touchdown run and finished with 176 yards on 21 carries. Griffin Hebert and Tanner Bernier both scored after blocked punts.

GRAY-NEW GLOUCESTER 32, LAKE REGION 14: Austin Chase scored four touchdowns and rushed for 190 yards as the Patriots (4-1) opened the game with 32 straight points and cruised to a win over the Lakers (0-5) at Gray.

OXFORD HILLS 34, MASSABESIC 0: Jacob Spinhirn had 225 yards rushing and three touchdowns, and the Vikings (1-4) shut out the Mustangs (0-5) at Waterboro.

WINSLOW 68, OCEANSIDE 0: Jacob Trask passed for two touchdowns and rushed for another as the Raiders (5-0) rolled to a win over the Mariners (2-3) at Rockland.

Trask threw a 61-yard TD pass to Hunter Campbell and an 84-yard pass to Dylan Hutchinson.

MT. BLUE 32, GARDINER 0: Nate Pratt-Holt returned the second-half kickoff for a touchdown, and Christian Whitney rushed 21 times for 141 yards and a touchdown to lead the Cougars (4-1) to a win over the Tigers (1-4) at Farmington.