While I'd love to pretend I'm tough and say I would have hit her, I would have been so completely floored and shocked I have no idea what I would have done (not saying anyone here is faking their toughness!). I avoid confrontation, hate hate hate it.
I just feel sick to me stomach thinking about this. Your little boy must have been so confused and embarrassed. So I would have spent a while (the day) making him feel good and trying to make him understand that he was not a naughty boy at all.
I think you handled it really well by the way. Please give your boy a giant cuddle and ice cream from me!