"When we started we felt we didn't have as good a package as Red Bull and Ferrari. We'll try and do what we can in Monza, but from Singapore I hope we can be strong from there."
His teammate Nico Rosberg was fourth, giving second-placed Mercedes a 17-point advantage over nearest rival Ferrari.
Hamilton's former McLaren teammate Jenson Button was sixth -- the 2009 world champion won the race last year -- and Ferrari's Felipe Massa seventh.
Lotus' Romain Grosjean took eighth and Adrian Sutil was ninth in a consolation for Force India, whose other driver Paul Di Resta had to retire after being hit by Williams' Pastor Maldonado.
Ricciardo completed the top 10, giving the 24-year-old his fourth points-scoring race this season to be 14th overall in the standings.