Early second-half goals from Martin Cauteruccio and Gonzalo Veron gave San Lorenzo victory as Boca's winning streak in all competitions ended at four games, halting their surge up the standings.
Boca sit fifth in the table with 23 points, eight adrift of arch-rivals River Plate, who are top, while San Lorenzo (17) moved up to 12th.
In driving rain at the Estadio Pedro Bidegain, Cauteruccio got free of his marker to head Veron's cross into the net from six yards to give San Lorenzo the lead in the 52nd minute on Sunday.
Veron struck San Lorenzo's second goal five minutes later, cutting inside after storming down the left to curl his shot inside the far post.
With Boca losing, Racing Club moved away from the Buenos Aires giants, winning 1-0 at Gimnasia La Plata to move up to third.
Gabriel Hauche struck with just four minutes remaining to send Racing above Independiente in the table, with the latter not in action in a split round in Argentina's top tier.
In other results, Banfield cruised past Olimpo 3-0, Belgrano defeated Godoy Cruz 3-1, Atletico Rafaela won 2-0 at Rosario Central and Quilmes trumped Velez Sarsfield 2-1.
Defensa y Justicia versus Newell's Old Boys on Monday was postponed due to bad weather.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.