Orlando City (11-6-7, 40 points) have been one of the hottest teams in MLS over the last three months, posting a 7-2-5 record in their last 14 regular-season games.
The loss ended Chicago's three-match winning streak, which all came on the road, and the Fire (8-8-8, 32 points) are now 5-2-0 in their last seven matches. Both losses came to the Lions, who recorded another 3-1 victory over the Fire in Orlando on July 1.
Facundo Torres scored Orlando City's other goal Sunday, converting a penalty kick in the 68th minute. It was Torres' eighth goal of the season, and third in two games against Chicago.
Following a scoreless first half, the teams erupted for three goals and two lead changes within the first eight minutes of the second half.
The Lions quickly responded with the tying and go-ahead goals. Cartagena headed in a corner in the 50th minute for his first MLS goal, and Angulo followed up in the 54th minute with another header to deposit a loose ball in front of Chicago's net.
It was a surprising defensive breakdown for a Fire team coming off consecutive clean sheets in three consecutive regular-season matches. Cartagena's goal ended the Fire's shutout streak at 335 minutes, spanning parts of five matches.
The Fire thought they had opened the scoring on Georgios Koutsias' goal in the 25th minute. However, a video review overturned the goal since Koutsias was ruled offside.
Fire assistant coach C.J. Brown was the acting head coach Sunday, as Frank Klopas missed the match after testing positive for COVID-19.