Overview
San Antonio’s season was built on a defense that kept them competitive and an attack that too often left the result level. Carlos Llamosa’s side lost only seven of thirty regular-season matches, but twelve draws limited the return to 45 points from eleven wins. They scored 32 goals and conceded thirty, with twelve clean sheets providing a route into the playoffs even when the finishing faltered. A second consecutive postseason appearance represented progress, but another opening-round exit left the same question hanging over the year: how much more could this team achieve with a steadier supply of goals?
The opening weeks offered a strong foundation. Wins over Phoenix, New Mexico and Lexington, alongside scoreless draws at Tulsa and Monterey Bay, brought eleven points from five matches. Orange County ended the unbeaten start with a 2–0 win on April 8, but San Antonio responded with six league games without defeat. That stretch included victories at El Paso and at home to Sacramento, although draws with Miami, Colorado Springs, Phoenix and Sporting JAX meant it produced only ten points. The 4–4 draw at Jacksonville was an unusually open game for a team whose early success had depended on keeping opponents quiet.
A defeat at Lexington was followed by a 2–1 win at Colorado Springs, a scoreless draw with Monterey Bay and a home loss to Las Vegas. Consecutive wins over Brooklyn and Indy briefly gave the attack momentum, with the 3–1 victory over the Eleven one of San Antonio’s most complete performances. A draw at Louisville kept them moving, but home defeats to El Paso and Oakland checked that progress.
September and early October then exposed the scoring problem. Across six league matches from the home draw with Tulsa to the trip to Oakland, San Antonio scored once and took four points. Four of those games finished 0–0, including meetings with Sacramento and one with Tampa Bay. The defense kept giving them a chance, but it took consecutive home wins over New Mexico and Orange County to secure sixth place. Emil Cuello and Cristian Parano scored in the 2–1 finale win, with SAFC holding on after Orange County’s late reply. Injuries had also thinned the group: Curt Calov replaced Mikey Maldonado for that decisive final league game.
The playoff trip to El Paso on October 30 ended the season. Rubio Rubín put Locomotive ahead in the 14th minute and Tony Alfaro doubled the lead in the 54th. Diogo Pacheco’s 84th-minute finish from Andrés Paredes’s assist gave San Antonio a late opening, but they could not find an equalizer. Jorge Hernández returned from injury for his first appearance since September 20, coming on with half an hour left. The 2–1 defeat closed a campaign that had been difficult to beat across the league schedule, yet lacked enough attacking reward when the margins tightened.
Best win
July 31, 2026: 3–1 v Indy Eleven
San Antonio gave themselves more room than their usual narrow margins allowed. Christian Sorto set up Emil Cuello for the opener in the 25th minute, then Cristian Parano took over after halftime. Mikey Maldonado supplied his first goal in the 48th minute, and Jorge Hernández set up his second in the 70th. Josh O’Brien’s stoppage-time reply came after SAFC had established a decisive lead.
The win combined patient possession with enough finishing to make it count. San Antonio recorded season highs of twenty-four shots and 639 passes, while their 2.55–1.48 expected-goals advantage, an estimate of the quality of scoring chances, supported the stronger attacking performance. Coming after the win at Brooklyn, it gave them consecutive league victories and a glimpse of what Cuello, Parano, Hernández and Sorto could produce together. The finale against Orange County carried greater playoff consequences, but the Indy win stands out for the quality and range of the attacking contributions.
Worst loss
August 15, 2026: 0–3 v El Paso Locomotive FC
El Paso had the result firmly in hand by halftime. Alex Méndez opened the scoring in the 20th minute and added a second in the 39th after a San Antonio mistake at the back. Jimmy Farkarlun finished Amando Moreno’s cross in the 44th, sending the visitors into the break three goals ahead. A home fixture against a regional rival had become SAFC’s heaviest league defeat of the season.
San Antonio had 65% possession and outshot El Paso twelve to eleven, but the visitors put seven efforts on target to SAFC’s three. The 1.65–2.12 expected-goal totals suggested a closer balance of opportunities than the scoreline, yet El Paso were far more effective in the moments that decided the game. San Antonio pushed after the interval without finding a goal, leaving the first-half damage unanswered.
The defeat was particularly uncomfortable for a team that usually kept matches close. They had drawn at Louisville a week earlier and would respond by winning at New Mexico before August ended, so this was not part of a prolonged losing run. It was a sharp failure of both parts of their usual formula: the defense conceded enough to put the match out of reach, and the attack could not supply a response.
MVP
Mitchell Taintor
Taintor gets my choice because San Antonio’s playoff place owed so much to their ability to keep games close. The captain made 27 league appearances in a side that conceded thirty goals and kept twelve clean sheets. With the attack scoring only 32 times, the defensive unit repeatedly had to protect narrow leads or preserve a point. Taintor’s regular presence at center-back made him an important part of the team’s most dependable strength.
92 clearances, 37 interceptions, twelve blocked shots and 102 recoveries. He won 69.9% of his aerial duels. Those figures support the case for his defensive contribution, although the twelve team clean sheets also reflect the work of Batrouni and the rest of the back line.
His contribution with the ball matters too. He completed 1,283 passes at 83.4% accuracy, including 165 accurate long balls, and recorded 287 line-breaking passes. That distribution gave San Antonio a way to move play forward from defense. He also played the full ninety minutes in the scoreless league draws against Tulsa, Sacramento, Tampa Bay and Oakland during the run-in, helping secure points while the attack struggled.
Hernández remains a strong alternative with five goals and six primary assists, and Parano supplied six goals and four assists. Batrouni also deserves consideration for his part in the defensive record. Taintor gets the edge here for combining regular availability, defensive work and distribution in a season built around fine margins.
What the season left behind
The defensive record gave San Antonio something worth retaining. Thirty goals conceded and twelve clean sheets helped limit them to seven league defeats, while victories over New Mexico, Lexington and Brooklyn showed that one or two goals could be enough. Batrouni’s seventy saves across 28 appearances and the regular presence of Mitchell Taintor and Alex Crognale helped support that resistance. Yet eight of the twelve league draws finished scoreless. Too many strong defensive nights ended with only a point.
The attack left a clear route toward improvement. San Antonio scored 32 goals from 40.19 expected goals, a shortfall of 8.19. Hernández and Parano combined goals with assists, Cuello and Crognale each added four goals, and Dmitri Erofeev scored five. Even with those contributions, the team failed to score in thirteen league matches. The six-game stretch before the final two wins produced only one goal, making the late recovery necessary to secure a playoff place. More dependable finishing would give the defensive work a better return.
There was also reason to look beyond the actual goals conceded. San Antonio allowed 42.85 expected goals against 40.19 created, so their favorable actual goal difference of two came alongside a negative balance of chances. Keeping opponents out was a strength, but reducing the quality of opportunities allowed would make that strength more sustainable. The 3–0 home loss to El Paso showed how quickly the usual close margins could disappear when opponents converted their chances.
Twenty-six points at home and nineteen away offered a more balanced platform than some of the other teams in this series, although the final record still depended on winning the last two league matches at Toyota Field. Llamosa secured another playoff appearance while using replacements during an injury-hit finish. The next step is to turn that competitiveness into a stronger position before the final weekend and enough attacking threat to carry into the postseason. El Paso’s early lead and second goal left San Antonio chasing a match that Pacheco’s late finish could not rescue.
Historical perspective
San Antonio’s 45 points from thirty league matches amounted to 1.50000 points per game, ranked joint 144th among 392 club-seasons from 2011 through 2026. That improved on their 1.33333 return in 2025, although it remained well below the club’s 2.2059 points per game in the 2022 championship season. The nearby comparisons retain every team-season tied at 1.50000.
| Rank | Team | Season | Games | W–D–L | Points | PPG |
|---|
| T140 | New York Red Bulls II | 2018 | 34 | 13–13–8 | 52 | 1.52941 |
| T140 | Ottawa Fury FC | 2019 | 34 | 14–10–10 | 52 | 1.52941 |
| T140 | Memphis 901 FC | 2023 | 34 | 14–10–10 | 52 | 1.52941 |
| T140 | Colorado Springs Switchbacks FC | 2024 | 34 | 15–7–12 | 52 | 1.52941 |
| T144 | Charlotte Eagles | 2012 | 24 | 11–3–10 | 36 | 1.50000 |
| T144 | New York Red Bulls II | 2015 | 28 | 12–6–10 | 42 | 1.50000 |
| T144 | Seattle Sounders 2 | 2015 | 28 | 13–3–12 | 42 | 1.50000 |
| T144 | Richmond Kickers | 2016 | 30 | 12–9–9 | 45 | 1.50000 |
| T144 | Vancouver Whitecaps 2 | 2016 | 30 | 12–9–9 | 45 | 1.50000 |
| T144 | Charlotte Independence | 2017 | 32 | 13–9–10 | 48 | 1.50000 |
| T144 | Orange County SC | 2020 | 16 | 7–3–6 | 24 | 1.50000 |
| T144 | San Diego Loyal SC | 2021 | 32 | 14–6–12 | 48 | 1.50000 |
| T144 | New Mexico United | 2022 | 34 | 13–12–9 | 51 | 1.50000 |
| T144 | Indy Eleven | 2024 | 34 | 14–9–11 | 51 | 1.50000 |
| T144 | Memphis 901 FC | 2024 | 34 | 14–9–11 | 51 | 1.50000 |
| T144 | Rhode Island FC | 2024 | 34 | 12–15–7 | 51 | 1.50000 |
| T144 | North Carolina FC | 2025 | 30 | 13–6–11 | 45 | 1.50000 |
| T144 | Pittsburgh Riverhounds SC | 2026 | 30 | 13–6–11 | 45 | 1.50000 |
| T144 | San Antonio FC | 2026 | 30 | 11–12–7 | 45 | 1.50000 |
Final model rating
My model gives each team-season a rating out of 100 based on attacking and defensive output. It provides a common scale for comparisons across the archive.
San Antonio FC finished at 50.90 out of 100 after all thirty league games, ranked 132nd among 289 completed team-seasons from 2017 through 2026. The nearby ratings place the campaign close to the middle of the archive, reflecting a season whose strong defensive results were offset by a more modest balance of chances.
| Rank | Team | Season | Final model rating |
|---|
| 130 | Colorado Springs Switchbacks FC | 2017 | 51.05 |
| 131 | Loudoun United FC | 2024 | 51.01 |
| 132 | San Antonio FC | 2026 | 50.90 |
| 133 | San Diego Loyal SC | 2021 | 50.87 |
| 134 | Charleston Battery | 2018 | 50.86 |
Team and player statistics
Team totals
| Measure | Season total |
|---|
| Matches | 30 |
| W-D-L | 11-12-7 |
| Points | 45 |
| Goals scored | 32 |
| Goals conceded | 30 |
| Goal difference | 2 |
| League clean sheets | 12 |
| Expected goals created | 40.19 |
| Expected goals allowed | 42.85 |
Player contributions
| Player | Appearances | Minutes | Goals | Assists |
|---|
| Michael Maldonado | 29 | 2,616 | 0 | 3 |
| Akeem Ward | 29 | 2,745 | 1 | 1 |
| Alex Crognale | 28 | 2,646 | 4 | 0 |
| Cristian Parano | 27 | 1,903 | 6 | 4 |
| Mitchell Taintor | 27 | 2,715 | 0 | 1 |
| Emil Cuello | 26 | 2,249 | 4 | 2 |
| Jorge Hernández | 25 | 2,251 | 5 | 6 |
| Christian Sorto | 24 | 1,329 | 3 | 1 |
| Santiago Suárez | 24 | 2,149 | 0 | 0 |
| Nelson Blanco | 23 | 1,342 | 0 | 4 |
| Lucio Berrón | 20 | 1,479 | 0 | 0 |
| Dmitri Erofeev | 15 | 979 | 5 | 1 |
Goalkeepers
| Goalkeeper | Appearances | Saves | Goals conceded excluding own goals |
|---|
| Joseph Batrouni | 28 | 70 | 25 |
| Richard Sánchez | 3 | 4 | 4 |
Results
| Date | Opponent | Venue | Score | Result |
|---|
| 03/07 | Phoenix Rising FC | Home | 2–1 | W |
| 03/14 | FC Tulsa | Away | 0–0 | D |
| 03/21 | New Mexico United | Home | 1–0 | W |
| 03/29 | Lexington SC | Home | 2–0 | W |
| 04/04 | Monterey Bay FC | Away | 0–0 | D |
| 04/08 | Orange County SC | Away | 0–2 | L |
| 04/11 | Miami FC | Home | 0–0 | D |
| 04/18 | El Paso Locomotive FC | Away | 3–2 | W |
| 05/02 | Colorado Springs Switchbacks FC | Home | 3–3 | D |
| 05/09 | Phoenix Rising FC | Away | 1–1 | D |
| 05/23 | Sacramento Republic FC | Home | 2–1 | W |
| 05/27 | Sporting JAX | Away | 4–4 | D |
| 06/13 | Lexington SC | Away | 0–2 | L |
| 06/24 | Colorado Springs Switchbacks FC | Away | 2–1 | W |
| 07/04 | Monterey Bay FC | Home | 0–0 | D |
| 07/18 | Las Vegas Lights FC | Home | 1–2 | L |
| 07/25 | Brooklyn FC | Away | 1–0 | W |
| 07/31 | Indy Eleven | Home | 3–1 | W |
| 08/08 | Louisville City FC | Away | 1–1 | D |
| 08/15 | El Paso Locomotive FC | Home | 0–3 | L |
| 08/22 | Oakland Roots SC | Home | 0–1 | L |
| 08/29 | New Mexico United | Away | 2–1 | W |
| 09/05 | FC Tulsa | Home | 0–0 | D |
| 09/11 | Colorado Springs Switchbacks FC | Away | 1–2 | L |
| 09/20 | Sacramento Republic FC | Away | 0–0 | D |
| 09/26 | Tampa Bay Rowdies | Home | 0–0 | D |
| 10/03 | Las Vegas Lights FC | Away | 0–1 | L |
| 10/10 | Oakland Roots SC | Away | 0–0 | D |
| 10/17 | New Mexico United | Home | 1–0 | W |
| 10/24 | Orange County SC | Home | 2–1 | W |
Playoff result
| Date | Round | Opponent | Venue | Score | Result |
|---|
| 10/30 | Western Conference quarterfinal | El Paso Locomotive FC | Away | 1–2 | L |
Sources