I was looking thru Block explorer at an address with a balance. It has never been spent from thus the public key is unknown. If the public key is unknown, how can Block explorer calculate the hash160 of the public key?
Because an address is the Hash160 (=RIPEMD160(SHA256(x))) of the public key. The transaction output lists that 160-bit hash directly.
When redeeming such an output, you provide both the public key (which must hash to the value given in the output) and a signature (which must be valid for the given public key).