It's hard to speak a language in which you are not comfortable to your own child. I can understand that. While Tamil is your "first" language, your better language is obviously English.
Mine too but even then it was hard to not slip into French, here in France. I lived here before I met my dh, am a citizen and have been here for 14 years. Even I find the French word slipping out when I talk to my kids. I was born and raised in the U.S. in only English and in the beginning, I had to remind myself to stick to English with my first child (who didn't speak any language for ages!)
Also, you don't have the Big Motivator, which I did. No one in my family speaks French. But obviously, you're Indian and after 300+ years of colonialization, your child(ren) will not be entirely cut-off from communication with anyone back in India by using English. I had visions of having to translate for my kids on every trip home, which is not your headache.
My question is, do you have any other purpose to teaching them Tamil? Are you planning trips back to India? Do you have relatives nearby who are more comfortable in Tamil? Is there any Tamil community where you live?
If the spouse doesn't speak the language, it's not a problem. I always use English with my kids and my dh doesn't speak it. He now understands after a decade of hearing it in his home though! You do want your partner to be supportive of it. If he's resentful or finds it offensive, then it's not an ideal situation.
A parent can teach a language by either establishing a relationship in it. This would mean the majority of the communication is done in the language. But you can also teach it as a school-subject would be taught. The child can still learn to whatever degree you want to teach him. Vocabulary words, songs, games, etc. You might even experiment later with having small exchanges or even conversations in it if you get to the point.
This project would be easier if you have relatives or other Tamil-speakers in your life. If you do, by all means, get them on board.
Don't give up just because you don't have an ideal language situation. Let me assure you, from an OPOL "veteran", none of us do. The grass is always greener. So get over any guilt and just proceed at a pace which you can keep things sane and fun. You know your child will not be perfectly bilingual but sweep perfection to the side and share your culture and language at a level you can maintain.
Just getting him to repeat the words back to you or to sing songs is helpful. It will still give him an "edge" if he ever wants to pursue learning the language at another level, when he's older. If you only set a foundation, getting him to pronounce the sounds and form the words, it's still a foundation that can be built upon in the future.