SOUTH PORTLAND—The 106th “Battle of the Bridge” lived up to billing.

As a game.

As a battle.

And possibly as a springboard for bigger things to come for both participants.

Friday evening at Martin Memorial Field, in a showdown of two of the top teams in Class B South, red-hot South Portland, winners of three consecutive games, welcomed a surging Portland squad which was also on a three-game win streak for what promised to be a compelling regular season finale.

Compelling it was and while it wasn’t a thing of beauty, the end result was thrilling for the Bulldogs.


After a scoreless first quarter, the Red Riots struck first, on a 1-yard touchdown run from dynamic senior quarterback Jaelen Jackson.

Portland roared right back behind its standout senior quarterback, Kennedy Charles, whose 59-yard dash set up a 22-yard scoring run from senior Andrew Brewer to tie the score, 6-6.

The Bulldogs then dug into their bag of tricks, converting an onsides kick which led to a Charles 52-yard TD run that put Portland ahead to stay.

It appeared the Bulldogs were going to take a one-score lead to halftime, but on the final play, Charles found senior Remijo Wani for a stunning 27-yard touchdown pass and at the break, Portland led, 20-6.

South Portland roared right back at the start of the third quarter, marching for a score, as Jackson connected with senior Nolan Hobbs for a 17-yard scoring pass play.

That would be it for scoring, but the Red Riots didn’t lack for opportunities to pull even or even go on top.


Four different times, South Portland had a chance to erase a deficit, but on each occasion, it failed to do so and the Bulldogs were able to run out the clock on a 20-13 victory.

Charles, who battled through a leg injury in the second half, ran for 194 yards as Portland won its fourth game in a row, closed the regular season with a record of 5-3, locked up the top seed for the upcoming playoffs and in the process, dropped the Red Riots to 5-3 and likely into the third seed.

“Being a Bulldog, you have to dig deep and tough it out,” Charles said. “It feels great. It’s an accomplishment we’ve worked for all week. It just feels nice to get the ‘W.'”

High stakes

Portland and South Portland have battled on the gridiron since 1907, when Teddy Roosevelt was president, the fourth-ever World Series was won by the Chicago Cubs (beating the Detroit Tigers 4-games-to-none, with one tie) and Oklahoma was introduced as the 46th state (with New Mexico, Arizona, Alaska and Hawaii still to come).

The Bulldogs rolled to a 32-7 win at the Red Riots last fall (see sidebar, below, for recent results) to cut South Portland’s all-time lead in the series to 56-46 (with three ties).


There hadn’t been many meetings in recent seasons where both teams boasted a winning record, in fact 2014 was the most recent, but that wasn’t the case this time around.

The Bulldogs opened with a 21-14 win at Kennebunk (in a game played in Biddeford), then lost at home to powerhouse Leavitt (42-8), at Bonny Eagle (12-8) and at home to Class A favorite Oxford Hills (28-16), but turned things around with a 30-12 victory at Biddeford, then enjoyed a 40-8 home win over Marshwood, in a rematch of last year’s disappointing regional final, before rolling over visiting Gorham last week, 5o-13.

South Portland, meanwhile started fast with wins at home over Marshwood (35-26) and at Gorham (36-13). The Red Riots then lost late at Massabesic (14-13) and were beaten soundly by visiting Cape Elizabeth, the reigning Class C champion, 41-13. After blanking host Noble (21-0), South Portland pitched another shutout, downing visiting Biddeford, 28-0, then impressed last week at Scarborough, 27-7.

Friday, on a chilly late-October evening (52 degrees at kickoff), in front of a large and raucous crowd, after a rousing rendition of the Star Spangled Banner from Boston Bruins’ anthem singer Todd Angilly, the home team had its chances to steal the show, but Portland dug deep into its reservoir of toughness to prevail.

Thanks to a block from junior Isaak Alkafji, classmate Reegan Buck breaks through for some yardage during Portland’s 20-13 victory at South Portland Friday in the “Battle of the Bridge.” Hoffer photos.

The Bulldogs got the ball to start the game and after a 30-yard kickoff return from sophomore Aidan McGowan set up shop at the Red Riots’ 47, but despite a promising opening march, fell short of the end zone.

Wani got the first carry and gained two yards before junior Reegan Buck broke tackles and moved the chains with a nine-yard pickup to the 36. After Brewer gained six yards on his first attempt, Charles kept the ball and bounced off a tackler for 15 yards, setting up first down at the 15. Charles then kept the ball for two yards, threw incomplete, then was held to a two-yard pickup by senior Ben Smith, setting up fourth-and-6. South Portland then jumped offsides, making it a more makeable fourth-and-1, but Charles was stopped cold by the Red Riots’ defense and South Portland took over on downs at its 6.


The Red Riots picked up a first down, as senior Jonny Poole ran for six yards and after a false start penalty, Jackson kept the ball for five before connecting with senior Lucas Mehlhorn 13 more on a slant to the 25. After Jackson kept the ball for two yards, Poole appeared to break away for a 20-yard pickup, but a holding penalty instead set up second-and-15 at the 20. After Smith caught a pass for four yards, Jackson threw deep to Hobbs who was tripped up, but the officials ruled it incidental contact and the incomplete pass forced a punt.

With 3:41 to go in the opening stanza, Portland took over at the South Portland 46, but after Buck ran for eight yards, Charles’ pass over the middle was intercepted by Mehlhorn, who returned the ball to the 30.

With 2:46 left in the first, the Red Riots began a nine-play march that would eat up the rest of the quarter and the first play of the second to take a short-lived lead.

Mehlhorn ran for a yard on first down, then Jackson threw incomplete, but on third-and-9, Jackson hit Hobbs for a big gain, 31 yards, all the way to the Bulldogs’ 38. After Jackson ran for three yards, Poole gained six and on third down, Jackson snuck his way forward and wound up pushing the pile for a dozen yards, al the way to the 16. After sophomore Colin Kelly dropped Poole for a two-yard loss, Jackson hit Hobbs down to the brink of the end zone, setting up first-and-goal at the 1 as the first period came to a close.

On the first snap of the second quarter, Jackson kept the ball and scored easily from the 1. Senior Brady Demers’ extra point was off-target to the left, but with 11:57 to play in the half, South Portland had a 6-0 advantage.

After Charles slipped on the ensuing kickoff, Portland started at its 13, but in just three plays and 77 seconds, the Bulldogs would drive for the tying score.


Charles nearly got all of the yardage on first down, breaking through a big hole to the right and racing all the way to the Red Riots’ 28 before Jackson saved the touchdown.


After Buck gained six yards, Brewer did the rest, finding room to the right, bouncing off a tackler and outracing the pursuit to the end zone for a 22-yard score with 10:34 on the clock. Portland went for the two-point conversion, as after Charles handed the ball to Brewer, Brewer threw back to Charles, but South Portland was ready for the play and tackled him short, keeping the score 6-6.

The Red Riots looked forward to the chance to answer, but Charles pulled off a perfectly executed onside kick, which Wani fell on at the South Portland 46.

“We practiced it all week,” Charles said. “We didn’t execute it in practice as well as we did today. Remijo came up with the football, but he didn’t do it during practice.”

“Credit to Coach (Skip) Capone for working on that onside kick,” said Portland coach Jason McLeod.


“We suspected the onside kick and we were ready for it, but they executed it,” said South Portland coach Aaron Filieo.

The Red Riots had their chances to stop the Bulldogs, as senior Josh Sparacio dropped Brewer for a one-yard loss and a holding penalty set up second-and-20, but after Buck caught a pass for four yards, Charles did the rest, breaking free to the left on third-and-16 and leaving the defense in his wake en route to a 52-yard score with 8:40 remaining in the half.

Buck then rode a pancake block from Brewer into the end zone for the two-point conversion and a 14-6 lead.

South Portland finally got the ball back at its 35, but went three-and-out, as Jackson threw incomplete, then Jackson ran for four yards and finally three, which set up fourth-and-3 and forced a punt.

With 6:31 left before halftime, the Bulldogs got the ball at their 43 and they would use up every remaining second of the half to drive for an improbable insurance score.

Charles ran for five-, three-, then five-yards for a first down at the Red Riots’ 44. After Buck ran for five yards, he caught a short pass for four and on third-and-1, Brewer gained two yards for a first down at the 33. Charles then broke tackles for seven yards before rushing for two. Brewer then pushed the pile forward for two yards on third-and-1 for a first down at the 22.


Charles then tried to hit Wani in the end zone and senior Jeremie Vata broke it up for South Portland. Vata and his teammates and coaches felt he actually intercepted the ball, but the incomplete ruling stood.

After junior Hunter Temple ran for four yards on a reverse, a false start backed Portland up five yards and Jackson tackled Charles for a four-yard loss to the 27. That left just 3 seconds left for one final play and while everyone on hand knew the Bulldogs had to throw into the end zone, somehow Wani got free behind the defense and Charles found him for a 27-yard score after time expired.

“Remijo makes plays,” Charles said. “Big-time players make big-time plays in big games and he showed up and that’s all that matters.”

“It was a great connection between Kennedy and Remijo,” said McLeod.

“We knew they were going to throw the ball to Remijo,” Filieo said. “He just made a great play.”

Charles’ two-point conversion rush was stopped short, but Portland took a 20-6 lead to the break.


The Bulldogs out-gained the Red Riots, 225 yards to 95 in the first half, but weren’t home free quiet yet.

That’s because South Portland, not surprisingly, came out strong to start the third period, driving 60 yards in nine plays and 2 minutes, 24 seconds to get right back in it.

South Portland senior quarterback Jaelen Jackson tries to out-run Portland sophomore Brody Viola.

After Portland had a false start on the kickoff, then booted the ball out of bounds, the Red Riots started at their 40. Poole ran for three yards on first down, then Jackson threw incomplete, but Jackson connected with Mehlhorn on a slant for nine yards and a first down at the Bulldogs’ 48. Jackson then ran for 15 yards, pushing the pile in the process. After a holding penalty set up first-and-20, Jackson threw incomplete, then missed again, but pass interference was called, setting up second-and-6. Jackson then found Hobbs for 17 yards and a first down at the 12. After two incomplete passes were sandwiched around an illegal procedure penalty, South Portland faced third-and-15, but Jackson threw to the right back corner of the end zone where Hobbs came down with the ball for a 17-yard touchdown. Demers added the PAT and with 9:36 left in the third period, the Red Riots trailed 20-13.

At that juncture, after 33 points were scored in just over 15 minutes of game action, the thought that no one would tally another point was unthinkable, but that’s exactly how it played out.

Portland began its first possession of the second half at its 41 and threatened to answer, as Charles kept the ball for seven yards, then ran for 12 more to the South Portland 40, but after Wani couldn’t haul in a Charles pass that likely would have gone for a touchdown, a holding penalty backed the Bulldogs up and although Charles ran for five yards, he fumbled on the play and Smith recovered for the Red Riots at their 48.

South Portland appeared to have all the momentum, but Jackson couldn’t handle the ensuing shotgun snap, the ball hit the ground and Brewer recovered for Portland at the Red Riots’ 45 to turn momentum back to the visiting team’s sideline.


The Bulldogs hoped to drive and extend their lead and they’d get close before coming up empty.

A holding penalty sent Portland backwards to start the march, but after Charles ran for 12 yards, a personal foul facemask penalty was tacked on to put the ball at the South Portland 26. After Red Riots’ senior Josh Lamour dropped Charles for a one-yard loss, a delay of game penalty set up second-and-16 where Brewer ran for 11 yards. The Red Riots then jumped offsides and the Bulldogs had first down at the 16. Charles then ran for five yards, but Sparacio dropped Brewer for a one-yard loss, Hobbs held Buck to one yard and on fourth-and-5, Charles was dropped by Jackson for a one-yard loss.

South Portland got the ball back at its 12 and after Poole was dropped by Wani for a three-yard loss, Jackson connected with Hobbs on a slant for 17 yards and a first down at the 26. Consecutive six-yard rushes by Jackson moved the chains again to the 38, but after Jackson was held to no gain, a one-yard rush by Poole ended the lengthy, penalty-plagued third quarter.

On the initial play of the fourth period, Jackson threw incomplete and the Red Riots had to punt.

With 11:47 to go, Portland started at its 26 and while it didn’t score, it chewed up nearly four minutes off the clock.

Buck set things up with a 49-yard scamper down the left sideline, all the way to the South Portland 25. Charles was held to no gain and stayed down on the grass on the play. He was eventually helped off with an apparent leg injury, bringing in sophomore Louis Thurston to play quarterback. Brewer then ran for seven yards before picking up eight more to set up first-and-goal at the 10. Charles returned and handed to Brewer for five yards. After junior Alex Dobson dropped Brewer for a one-yard loss, Buck tried sweeping to the left, but Lamour and Smith dropped him for a five-yard loss, setting up fourth down, where Charles threw incomplete and the Bulldogs turned the ball over on downs.


With 7:50 remaining, the Red Riots started at their 11, but disaster struck on first down, as Jackson rolled left to pass and was pressured by sophomore Brody Viola. Jackson managed to switch the ball from his right hand to his left and pushed it away for an incomplete pass, but the ball fell well short of the line of scrimmage, an intentional grounding penalty was called and with it came a loss of downs, setting up an unmanageable second-and-19 from the 2. After Jackson ran for two yards, Poole only gained seven on third-and-17 and South Portland had to punt.

With 5:53 left, the Bulldogs started at the Red Riots’ 37 and had a chance to put the game away, but after Buck ran for two yards and Charles picked up seven, Brewer was held to no gain and a holding penalty backed Portland up even further, forcing a punt.

South Portland got one final chance, starting at its 16 with 3:06 to go, but the Red Riots wouldn’t manage a single yard.

Jackson just missed Smith on a deep pass on first down, then threw incomplete under pressure on second down. Jackson bobbled the snap on third down, then missed incomplete again, setting up fourth down. The Red Riots couldn’t afford the risk of punting the ball away and not getting it back, so they decided to go for it, a challenge that became even more daunting after a false start and on fourth-and-15, Jackson’s pass in Hobbs’ direction fell incomplete.

“Coach Rudy (Mike Rutherford) told us what to do (defensively) and we did it,” Brewer said.

Portland got the ball at South Portland’s 11 with 2:43 left and never gave it back.


After Brewer ran for a yard, he gained five, then two more, setting up fourth-and-2 from the 3. On fourth down, Brewer found room and was brought down shy of the end zone, but it was enough for a first down.

“I just wanted to get the game over with,” Brewer said.

Charles then took a knee and at 9:34 p.m., the Bulldogs could finally exhale and celebrate winning the “Battle of the Bridge” again, 20-13.

Portland senior quarterback Kennedy Charles hugs assistant coach Dylan Rottkov at the conclusion of the Bulldogs’ victory Friday.

“I’m super-relieved to win,” Brewer said. “Now we have good leverage and momentum going into the playoffs. It wasn’t easy. I told everyone we just had to dig down and win the game.”

“Hats off to South Portland,” McLeod said. “They played well in many facets and components of the game. They have many dynamic players that gave us fits the entire course of the game. I have a feeling, if things work out the way we both want it to, we’ll see them again. We have to finish drives. We moved the ball well, but we didn’t finish, so hats off to South Portland for stopping us. We were opportunistic on defense. We did our jobs. We tightened things up, but just when you get comfortable, they go out and make plays.”

Portland finished with 338 yards of offense and overcame two turnovers and eight penalties for 69 yards.


Charles gained 194 yards on 21 carries with a touchdown. He also completed 3-of-8 passes for 35 yards with a touchdown and an interception.

He did all that despite being far from 100 percent physically.

“In football, injuries happen,” Charles said. “You sign up to play, you’re signing a contract that you could get injured. It is what it is.”

“We knew he’s not 100 percent, but he has that dog in him and he’s a role model for the younger kids,” Brewer said.

Brewer rushed for a hard-fought 70 yards on 16 carries and scored a TD.

“(Andrew and Kennedy) do it offensively and defensively,” McLeod said. “We put a lot of pressure on them, but that’s why they’re captains.”


Buck had 74 yards on eight rushes and caught two passes for 8 yards.

Wani caught just one ball, but it went for a 27-yard touchdown.

South Portland only mustered 174 yards of offense, including just 19 on its final four drives. The Red Riots gave the ball away once and committed 10 penalties for 71 yards.

Jackson only ran 12 times for 59 yards with a touchdown. He wound up 8-of-21 passing for 125 yards with one score.

“Coach said if Jaelen is throwing the ball, we’re doing something good,” Brewer said. “He usually runs all over teams, so if he’s throwing the run game isn’t as open as it usually is.”

Hobbs caught four passes for 82 yards with a TD.


Mehlhorn had two receptions for 22 yards.

Smith caught two balls for 21 yards.

Poole ran seven times for 19 yards.

“We had chances,” Filieo said. “Our expectation since day one has been to play hard for 48 minutes and fight hard no matter what. The guys continue to meet that expectation. We made some great plays when we needed to and missed some. That’s how the game goes. We continue to beat ourselves. We need to make more plays and score more points.”

Title chasing

South Portland expects to be ranked third in Class B South in the final Crabtree Points standings. If that’s the case, it will likely host Marshwood (2-5 heading into its finale Saturday at Kennebunk) in the quarterfinals next weekend.


The Red Riots beat the visiting Hawks on Opening Night, but beating the four-time reigning state champions twice in one season is a daunting task.

“We’ve been playing for November,” Filieo said. “We’re fortunate to be able to host a playoff game and that hasn’t happened in awhile (since 2017). We’re excited. We’ll figure out ways to get better.”

Portland will be first in Class B South for the second year in a row and again, the road to the title will go through the Bulldogs at Fitzpatrick Stadium.

Portland expects to meet Noble (1-6 heading into its finale Saturday at home against Massabesic) in the quarterfinals next weekend. The teams didn’t meet this fall.

“We’re ready, 100 percent,” Brewer said. “We just have to play our game and not make mistakes. We’re confident, but not too confident.”

“We’re trying to be one game better in the playoffs than we were last year,” Charles said. “Last year, we were so close. We just have to keep our heads down this year and work hard. Just because we beat a team once doesn’t mean they can’t come back and punch us in the mouth like what happened last year.”


“We wanted to be the number one seed,” McLeod added. “Our team chemistry is where we want it to be, at an optimal level. The guys are coachable and know it won’t be given to them and they’ll have to fight for it. We just have to put teams away. Finish drives. The little things we have to do well.”

Sports Editor Michael Hoffer can be reached at Follow him on Twitter: @foresports.

Recent “Battle of the Bridge” results

Portland 32 @ South Portland 7

South Portland 35 @ Portland 7

@ Portland 35 South Portland 0

@ South Portland 34 Portland 17


Portland 47 @ South Portland 0

@ Portland 31 South Portland 0

Portland 10 @ South Portland 6

@ Portland 38 South Portland 14

@ South Portland 19 Portland 6

South Portland 20 @ Portland 7


@ South Portland 13 Portland 7

@ Portland 36 South Portland 33

Portland 20 @ South Portland 14 (OT)

South Portland 27 @ Portland 6

Portland 44 @ South Portland 23

@ Portland 55 South Portland 8


Portland 19 @ South Portland 7

@ Portland 42 South Portland 7

Portland 21 @ South Portland 20

@ Portland 35 South Portland 6

Comments are not available on this story.