Can we send ERC20 tokens to a contract address??
Yes, any address (contract or not) can be the recipient of ERC20 tokens.
The token contract keeps track of each address's balance. The implementation is usually very simple; just a mapping of addresses to their balances. The
transfer method implementation probably won't do anything aside from check the sender's balance before making the transfer.
For more details see here.