How it happened
Carlos Coronel was the busiest player on the pitch, and São Paulo still lost. The goalkeeper made seven saves and earned a match rating of 8.0, yet Cruzeiro found a way past him twice to win 2-0.
Jorge broke the deadlock in the 44th minute, giving the hosts a 1-0 half-time lead. Zé Lucas added the second in the 57th minute, and São Paulo never found a way back into the match. There were no red cards.
The numbers
The shot count was close, 22 for Cruzeiro against 19 for São Paulo, but the quality was not. Cruzeiro put nine shots on target to the visitors' three, and their expected goals total of 3.13 was almost three times São Paulo's 1.06. On those chances, the hosts' two goals are, if anything, a modest return.
Possession was 54% to 46% in Cruzeiro's favour, and corners were level at eight each.
The highest match rating belonged to Cruzeiro defender William Furtado, who scored 8.5 with 80 touches and one key pass. São Paulo's Artur was the best of the visitors' outfield players, with a rating of 8.2 and six key passes.
What it means
Cruzeiro are fifth with 48 points, 12 more than São Paulo in 11th on 36. The hosts' last five league results read W-L-W-L-W, while São Paulo's read L-W-L-W-W.
Over the last 10 matches Cruzeiro have scored 17 and conceded 14, earning 1.6 points per match. São Paulo have scored 10 and conceded 11, at 1.3 points per match.
In April São Paulo won the reverse fixture 4-1 at home, so the two sides have now traded wins in their two meetings this year.