The Blues came back from a two-goal deficit but had Branislav Ivanovic and Fernando Torres sent-off before Javier Hernandez scored the winner 15 minutes from time.
The 219th Merseyside derby ended 2-2 between Liverpool and Everton at Goodison Park. The Reds went 2-0 ahead through Luis Suarez but Leon Osman and Steven Naismith got the Toffees on level terms in the first half. Everton maintained their fifth position in the table.
Papiss Cisse slotted home a late winner as Newcastle United beat West Brom Albion 2-1 at St James Park. Demba Ba put the host ahead in the first half but was cancelled out by Baggies striker Romelu Lukaku.
Gareth Bale and Clint Dempsey scored first half goals to down Southampton 2-1 and jump to fourth spot in the Premier League. James Rodriguez got one back for the home side but the Saints could not find the equaliser.