Nico Rosberg held off a charging Daniel Ricciardo for a thrilling victory in Sunday's Singapore Grand Prix to take the lead in the Formula One title race.