WINDHAM — Sam Troiano came one out away from pitching a perfect game in South Portland’s 3-1 win over Windham in a Class A baseball game Monday.

Troiano’s perfect game was broken up on a two-out triple in the seventh by Tanner Bernier, who was driven in on a single by Timmy Greenlaw.

South Portland (1-0) capitalized on four errors by Windham (0-1), scoring three unearned runs.

Troiano (1-0) finished with seven strikeouts.

FALMOUTH 2, CAPE ELIZABETH 0: Cam Guarino pitched a shutout, striking out seven, as the Capers (1-0) beat the Yachtsmen (3-0) in Cape Elizabeth.

Griffin Aube singled in the second inning and scored on Marcus Cady’s sacrifice fly to right.

Falmouth added a run in the third when Robbie Armitage singled home Garrett Aube.

Brett McAlister had two of Cape Elizabeth’s four hits.

GREELY 1, GRAY-NEW GLOUCESTER 0: Logan DeCourcey scored the go-ahead run on a sacrifice fly by Tate Porter in the top of the sixth inning and the Rangers (1-0) held on to beat the Patriots (1-2) in Gray.

Ryan Twitchell threw a complete game, striking out seven and allowing one hit for Greely.

DeCourcey singled to start the sixth, moved to second on a sacrifice bunt by AJ Eisenhart and advanced to third on a throwing error.

The Patriots had a chance to tie the game in the bottom of the seventh with John Villanueva on second base, but Josiah Rottari grounded out to end the game.

Rottari pitched a strong game for the Patriots, allowing one run on four hits while striking out two in six innings.

YARMOUTH 4, YORK 3: Gibson Harnett scored the winning run on a fielder’s choice by Jackson Caruso in the bottom of the seventh to lift the Clippers (1-0) over the Wildcats (2-1) in Yarmouth.

Joe Coyne, Luke Waeldner and James Waaler hit consecutive RBI singles to give Yarmouth a 3-0 lead in the second inning. York scored a run in the third and another in the fourth, then tied the game in the seventh on a two-out RBI single by Dawson Gundlah.

Waeldner had two hits and also came in relief in the sixth inning to pick up the victory for Yarmouth.

BIDDEFORD 5, PORTLAND 3: Logan Magnant lined an RBI single to start a four-run rally in the sixth inning as the Tigers beat the Bulldogs in an opener at Biddeford.

Giovanni Ruotolo had a two-run single in the top of the fourth as Portland opened a 3-0 lead, before Biddeford chipped away with a run in the bottom of the fifth.

Camren Knop had a pair of hits, including a double, for the Bulldogs.

Biddeford’s Brady Crepeau went six innings, allowing one earned run on three hits and three strikeouts.

Crepeau left for a reliever but returned to pick up the save. Brice Springer pitched a scoreless inning to earn the win.

Donny Tocci pitched well in the loss for Portland, allowing only a pair of earned runs and striking out five.

CHEVERUS 3, GORHAM 0: Jared Brooks struck out 12 to lead the Stags (2-0) over the Rams (1-1) in Gorham.

Justin Ray and Rylan Benedict each had two hits for Cheverus.

Brooks (1-0) allowed four hits and one walk over 61/3 innings. Ray pitched in relief to record the save, striking out his final batter in a bases-loaded jam.

TRAIP 6, SACOPEE VALLEY 2: Shane MacNeill retired the first 13 batters he faced and hit a two-run homer to lead the Rangers (2-0) over the Hawks (1-2) in Hiram.

MacNeill (2-0) allowed four hits over six innings and struck out two.

OCEANSIDE 15, MCI 8: Tim Mazzeo had two hits and scored three times as the Mariners (2-0) beat the Huskies (0-3) in Rockland.

Titus Kaewthong hit an RBI triple, while Michael Norton and Coby Dorr each had two hits and an RBI for Oceanside, which scored six runs in the bottom of the fourth inning to take an 8-5 lead.

ERSKINE ACADEMY 6, MEDOMAK VALLEY 0: Nick Turcotte had two doubles and Dakota Stoops added a pair of hits to lead the Eagles (1-0) to a win over the Panthers (0-2) in South China.

Dylan Presby pitched five innings of shutout ball to earn the victory for Erskine (1-0).

WELLS 5, KENNEBUNK 0: Cameron Cousins struck out six and pitched a complete game as the Warriors (1-0) beat the Rams (1-2) in Wells.

CONY 3, CAMDEN HILLS 2: Kolbe Merfeld and Taylor Heath combined on a three-hitter, leading the Rams (1-1) past the Windjammers (1-1) in Augusta.

Cony tied the game at 2-2 in the bottom of the fourth inning on a Danny White suicide squeeze. Merfeld doubled for the Rams.

Owen Hilt doubled for Camden Hills, while Braden Fisher took the loss in a complete game effort.

LACROSSE

CAMDEN HILLS 9, WINSLOW 2: Thomas Griebel scored five goals to lead the Windjammers (2-0) in Rockport.

Evan Dart and Cameron Goodwin scored for Winslow (0-3).