Funny....I never did ANYTHING but apparently all of my cousins did bc our Thanksgiving conversation turned for an hour or so to all the different things the aunts and uncles did when they caught them smoking/drinking/etc. The thing that worked the best: My aunt made one cousin smoke the whole pack in a sitting. My great grandmother made my grandfather EAT the pack of cigarettes. - either one of those will probably make him sick enough to not want to go near it again. both were 12.
Also at twelve, my cousin was enamoured of the "black sheep" part of the family...who typically remained drunk. So his mom sat him down with a bottle of whiskey and made him drink 8 oz....which made him so sick he hasn't had any since....even as a 40 year old man.
While these things sound harsh, they worked.
Remember being a teenager too...if he's gonna do something, honestly, he's gonna do it. And unless you find something harsh, your efforts to stop him from doing it will probably push him towards the undesirable behavior. But don't let that discourage you!! You wouldn't be the loving parent you are if you gave up!! :)
GOOD LUCK! Let us know if anything works!