The Cosmos, whose game was postponed because of rain from Saturday to Sunday at its Coney Island stadium, recovered from a 2-0 deficit after Puerto Rico's Yuma was red-carded in the 35th minute.
Enzo Rennella, Dylan Mares and Robert Baggio Kcira scored for Miami as it beat Indy Eleven, 3-2, handing the 2016 Soccer Bowl runner-up its first loss of the season.
Jamaican Lance Laing scored his third and fourth goals of the season in North Carolina's 3-1 win over previously unbeaten Jacksonville. Laing is tied with Justin Braun, who scored late in Indy's loss, in the league leading scorers' race.
• Miami has won three straight games
• Puerto Rico has lost four straight games.
• Indy Eleven and Puerto Rico remain the only winless teams.
• The Cosmos' win over Puerto Rico marked its first win in three games at MCU Park, which they moved into the season.
• An 89th minute free kick by Cristian Portilla gave San Francisco a 1-0 win at Edmonton and back-to-back road wins.
Spring Season, Week 8 results
SATURDAY, MAY 13
Miami FC 3 (Rennella 46+, Mares 61, Kcira 65) Indy Eleven
2 (own goal-Freeman 56, Braun 83)
Att.: 5,735
North Carolina 3 (Marcelin 27, Laing 41, 69-pen.) Jacksonville 1 (Blake 12-pen.)
Att.:
4,543
SUNDAY, MAY 14
New York 4 (Flores 42, Guerra 47+, Richter 50, Restrepo 58) Puerto Rico 3 (Gentile 15, Welshman 16, Dias 64-pen.)
Att.: 2,240
Edmonton 0 San Francisco 1 (Portilla 89)
Att.: 2,968
NASL Spring Standings
PTS TEAM W-L-T
GF/GA
14 Miami 4-1-2 12-7
12 San Francisco 3-1-3 7-4
12 New York 3-1-3 9-8
11 North Carolina 3-2-2 11-9
10 Jacksonville 2-1-4 6-6
6 Indy Eleven 0-1-6 8-9
4 Edmonton 1-5-1 3-9
3 Puerto Rico 0-4-3 9-13