Managing people is a chore. Especially when they do stupid crap that lands you in the ER.

Without knowing all the other things this guy may or may not have done, its hard to offer a good opinion. The way it reads, you basically dealt with the incident (chewed out, sent home) and you got left with the consequences. That does sort of color any further response you make as being "retaliation" for your getting hurt after the fact. At least somewhere in his head (and perhaps other employees) he is going to be thinking "why'd you fire me, you're the dumbass the jabbed his hand into a nail, I'm just the dumbass that put it there" Just an alternative view to think about...
If it were me, I'd be looking at two choices: 1) Fire the guy and let him find a job wasting time/money at your competitors. 2) Make this a living, bleeding, yelling and cussing example of why you don't screw around on the job site(in other words, a training session), and make it known that it will not be tolerated from anyone. Option #2 could include maybe a pay cut/unpaid day off or something if you need to, uhm, "drive the point home".

In order to make the choice I'd have to rely on what the particular guy has done for you up to now, good or bad. Seems like these days just finding an employee who isn't smoking, snorting, or shooting up his paycheck is tough enough. You want them to actually be good skilled workers and have great work ethic?
Iceman has it pretty well summed up. Whatever you do, make it soon and decisive. I've watched more than a few people fire employees and then take them back when they feel sorry for them a couple months later, only to fire them for the same crap in another few months. If you fire him, do it and don't look back. He and his family will survive, its not like you just hit them with a Tsunami or something.