The only way I know of to get a free .com domain is through a web host when you sign up with them.
But I don't recommend that route as if you have your domain registered through the web host they could hold your domain hostage and not let you have it back when you decide to move away from your web host to another web host if you decide your web host isn't treating you good.
Go through a domain registrar such as dynadot.com and get yourself a domain through them or another one.
You can get a domain name through dynadot.com for $10.99 a year. That's less than a $1.00 per month.