Daniel Ricciardo finally broke his Monaco Grand Prix duck with a remarkable drive in a wounded Red Bull, somehow holding off Vettel and Hamilton to secure his second victory of the season.