(Image courtesy of Minneapolis City SC, captured by Jason Morales Ortiz)
Rivalries are strange animals. They can be born from almost anything, like proximity (Arsenal and Tottenham, Boca Juniors and River Plate), off-field culture (Rangers and Celtic, Real Madrid and Barcelona) or general contempt for humanity (Milwall and every living thing with a pulse.) But nothing solidifies enmity like being good at about the same time, competing not only for attention and respect, but for trophies and glory.
If flags fly forever, so does hatred for the team that keeps you from one.
Minneapolis City SC and Sueño FC are different enough from first principles, it’s hard to imagine the two ever being normal opponents. This was not a matchup destined for light and breezy soccer in the summer sun — the Nicest Rivalry in Sports, this ain’t — but the end of the 2025 season buried any possibility of these teams treating each other as normal opponents.
City needed to beat Sueño by two goals on the last day of the regular season to win USL 2’s Heartland Division via the goal differential tiebreaker. In spite of both teams being well-aware of that fact, City did precisely that, winning 4-2 and avenging a 3-2 loss earlier in the season. Proving that result wasn’t a bad-luck one-off, the Crows turned around and repeated the trick, beating Sueño again eight days later, knocking the Chicago-area side out of the playoffs on neutral turf.
Two massive wins — or brutal losses depending on which dugout you’re in — is the kind of stretch that becomes part of club lore immediately. Even with the volume of year-to-year change in USL 2 rosters, Sueño’s 2025 demise won’t soon leave collective memory.
Like many USL divisions, the Heartland is top-heavy, particularly this season as RKC Third Coast hasn’t even looked game to play spoiler. There’s too much of the 2026 season left to call Saturday’s head-to-head matchup between Sueño and City a title-decider, but Wednesday’s results — City beat RKC for the first time and Sueño was unexpectedly upset by 10-man River Light — added an undeniable weight to the proceedings in Minneapolis.
With a win, City would be three points clear with a game in hand. With a draw, the two would be locked atop the division with City’s game in hand looming large, and a loss would put Sueño back on pace to avenge their 2025 collapse.
The visitors started well, generating quite a bit of pressure and dominating possession for the first 10 minutes, but City did well to prevent clear scoring chances and blunting the subsequent set pieces. The rest of the first half was played largely on City’s terms. They settled in, dominating the midfield and forcing Sueño to play high-risk passes to alleviate the pressure. Their strikers were isolated, so even when they gained possession off those long passes, it seldom amounted to anything.
The breakthrough for City came shortly after a Sueño clearance narrowly missed taking out my laptop — I am not suggesting the subsequent goal was karmic justice, but I’ve yet to see firm evidence to the contrary, and divine intervention would explain the unusual goal.
Chukwudubem Oblio took the Crows’ throw-in, immediately got a pass back from Alexis Moreno, then put a beautiful cross into the box. After solid defending by Sueño for most of the half, they seemed to shut off on the throw. It wasn’t clear which of Oblio; Nathan Donovan, who went up for a flick-on and got credit for the goal; and Hakeem Morgan, who looked like he may have redirected the ball, but admitted post-game that he had not; actually got the telling touch. It’s academic in the grand scheme of things: In the 21st minute, the Crows had a lead they would not give up.
Goal in hand be damned, City pressed well for the next 20 minutes. They did not give up control of the midfield, and while Sueño did get a good 1v1 on the counter that was well-saved by Daniel Sessler, the vast majority of the traffic was heading toward Sueño’s end of the pitch.
In the last five minutes of the first half, the Crows finally relaxed a bit and Sueño held possession for more than a few touches, but it was the two yellow cards handed to Minneapolis — Morgan in the 43rd and Jacob Swallen on the stroke of halftime — that would set the stage for the rest of the night.
The second half started with a bang, two in fact. For the second time on the night, a throw-in undid Sueño as Alexis Moreno collected a second ball and laced a beautiful right-footed shot past Sebastian Gorecki in the 47th minute to give the Crows a 2-0 lead.
Just six minutes later, Sueño pulled a goal back. The attack itself was quick: Matthew Zachemski drove down the left side of the Crows’ midfield, pushed a ball out wide to Alex Barger, who cut a pass back to the penalty spot where Zachemski had continued his run. He made no mistake with his finish.
It was a well-worked goal, but it also started on what was almost certainly a handball when Zachemski cut between two Crows defenders to intercept a bouncing ball.
The second half was marred by poor refereeing, yet that missed call wasn’t all that big an issue, even as it led to a goal. Strangely, it wasn’t even wholly the ref’s fault that he derailed the game: The larger effect of the inconsistent refereeing by far was that Sueño — down just one goal and with more than enough time and talent to get the equalizer or even press for a winner — seemed more interested in working the ref than actually trying to play their game.
In one sense it worked, the Crows were issued four yellow cards in the second half alone and were less aggressive for much of the game’s last 20 minutes than they had been in the first 70.
In a much larger sense, it was a waste of effort. When the fouls were called in dangerous places, City defended the set piece well, and most of the time it just led to a halting, disjointed half of play. It’s fair to wonder how this matchup between two of the USL 2’s best might have gone if Sueño hadn’t been trying to get a Crow sent off.
There’s little question City was better on the night. Sueño started brightly and counter-attacked effectively, forcing Jason Ramos to show a terrific amount of skill in 1v1 defending, but they didn’t have much possession in dangerous places. They kept City within touching distance for the entire second half, but they never looked capable of doing more than drawing level.
Particularly in the game’s closing minutes, Sueño seemed to recognize that they were second-best. Desperation isn’t a good look on anyone, but it’s a startling admission from the team ranked 4th out of the 150 in USL 2 that their best chance of securing even a point was to hope for a favorable error by the crew.
It never came. Minneapolis City ended the night on top of the table, up three points with a game in hand, and now owning the tie-breaker between the two clubs by virtue of winning their head-to-head matchup. Since winning the first match between the two clubs, Sueño has now lost three straight to the Crows.
Rivalries are strange animals. Would Sueño have played more confidently against another good team that wasn’t the Crows? Would it have mattered?
Sueño is still a virtual lock to make the playoffs, but Saturday night’s loss means the Crows are in line to take a second division crown at their expense. Sueño hasn’t even completed their second season in the league, yet particularly without other teams inflicting meaningful losses, the Crows are cementing themselves as their tormenter and the largest barrier to their success.
It’s the kind of start great rivalries are made of.
