I have purchased the first two SC2 games, and would like my son to be able to play. I am currently installing them on his computer from my Battle.net account. Is there a way for him to play that game (which I have a physical copy of, though he does not have an optical drive) using his account, without having to re-purchase the game?
While your son can play with you using the StarCraft 2 Starter Edition (free) while in the same group (thanks to @BlueRaja-DannyPflughoeft for stating this out), you can't really transfer your key without using some tricks like this, which consists of lying etc, so I would not recommend doing such thing.
If you are thinking about sharing your account with your son, I recommend you to think again as the EULA states that you can't share your account.
2.A.vii: All Accounts. Note that Blizzard owns all Accounts, and that all use of an Account shall inure to Blizzard’s benefit. Blizzard does not recognize the transfer of Accounts. You may not purchase, sell, gift or trade any Account, or offer to purchase, sell, gift, or trade any Account, and any such attempt shall be null and void and may result in the forfeiture of the Account;
1.A.iv: When you create an Account, you will be required to select a unique username and password (collectively referred to hereunder as “Login Information”). You may not use your real name as the password for the Account, and you cannot share the Account or the Login Information with anyone, unless the terms of this Agreement allow it.