Hamilton spent most of the race pursuing Vettel and appeared to be quicker.
But although he could close through the first sector and in the back straight DRS zone, the McLaren driver was struggling to get within overtaking range of the Red Bull.
That changed when Vettel came upon Karthikeyan on lap 43, with Hamilton able to gain several car lengths and then sweep past using DRS.
"Everything seemed to be in control and here traffic is quite difficult and it didn't work in my favour," said Vettel.
"Lewis was close enough to open his rear wing. It didn't matter which side I picked."
Television viewers heard angry radio messages from Vettel after he lost the lead, and the German underlined that the traffic was the target of his displeasure.
"I wasn't too happy to send a deep invitation to Lewis going past Karthikeyan and he was right behind in the DRS zone," Vettel said.
"To do a big different in one corner is hardly possible and he took that opportunity down the straight.
"I wasn't happy as before that I had managed the gap to him, and had managed tyres to attack in the last few laps."
Vettel could only add three points to his drivers' championship lead over Fernando Alonso, but his second place did allow Red Bull to clinch its third successive constructors' title.
"It was a shame to lose first pace but I think we did everything we could," said Vettel.
"It was fantastic job for the team today to seal the constructors' championship, I am happy for that. The guys can be very proud of themselves, and they can have a drink tonight."
The second Red Bull of Mark Webber retired with an alternator failure - the same problem that had forced Vettel out of the European and Italian GPs. But Vettel said he was not concerned about the return of the issue.
"If it was alternator it is not good news but I think we managed the last couple of races pretty well so it should be easy to explain and find the problem," said Vettel.
"After Monza I think we learned the lesson and we should be prepared enough for next week."