The Sao Paulo giants are two points clear of Vasco da Gama at the top as Flamengo dropped to fourth after losing 3-2 away to Avai.
Corinthians took the lead at home through Chicao's 17th-minute penalty but Douglas scored in the 39th minute to give Gremio parity at half-time.
Paulinho restored the hosts' advantage in the 64th minute and Ramon Motta made it 3-1 soon afterwards but they were immediately weakened by the dismissal of Liedson.
Andre Lima pulled one back for Gremio (73) but despite Edenilson following Liedson down the tunnel, Corinthians held on.
An Elton brace (51 and 64) helped Vasco da Gama to a 3-1 home win over Ceara.
Eder Luis added Vasco's second in the 61st minute with Washington grabbing Ceara's goal between that strike and Elton's second.
Botafogo are a point behind Vasco in third as they beat Palmeiras 3-1 for their third straight win. German Herrera gave them the perfect start with a goal after two minutes and Gustavo (22) put them 2-0 up at the break. Maicosuel added a third in the 62nd minute before Marcos Assuncao notched a last-minute consolation for the visitors.
Flamengo have now gone six league matches without a win as Avai this time took advantage.
Robson put Avai ahead in the third minute but Ronaldinho levelled for Flamengo 33 minutes later. Quickfire goals from Cassio (69) and Rafael Coelho (72) restored Avai's advantage and although Ronaldinho cut the gap to one with two minutes left, the home side were able to register their fifth league win in 20 games.
Sao Paulo slipped to fifth with a 2-1 home defeat to Fluminense. Manuel Lanzini gave the visitors a 17th-minute lead and Rafael Sobis doubled their advantage in the 64th minute. Sao Paulo goalkeeper Rogerio Ceni pulled one back (74) but their hopes of completing a comeback were dashed by the dismissal of Jean eight minutes later.
Sao Paulo face Figueirense next, who won 4-2 at Cruzeiro on Wednesday night.
Julio Cesar started and finished the scoring for Figueirense in the 28th and 58th minute, with Elias (34) and Wellington (50) on target in between. Charles was on target twice for the hosts (37 and 60).
Atletico Mineiro ended a six-match run without a win in the league by beating Atletico Paranaense 1-0. Mancini notched the only goal to take Mineiro above their opponents on goal difference.
Santos stormed back from 3-0 down to draw 3-3 with Internacional in Porto Alegre thanks to goals from Borges (75), Alan Kardec (80) and Borges again (86).
The home side had looked on course for a comfortable win as goals from Bolivar in the seventh minute, Leandro Damiao (17) and Oscar's 71st-minute penalty appeared to put them in control.
Atletico Goianiense were 3-1 winners over Coritiba as Marcio gave them a 33rd-minute lead from the penalty spot. Agenor doubled their advantage (63), Aquino pulled one back for Coritiba in the 85th minute but the hosts made sure through Anselmo in the final minute.