How does the blockchain know if its block hashes have been tampered?
Changing the previous block hash in all of the subsequent block hashes will change those block's hashes too. They become different blocks and are treated as different blocks by nodes. When other nodes try to verify those other blocks, they will extremely likely compute a block hash which does not meet the Proof of Work requirement, and thus those blocks would fail validation.
The way around this is for the attacker to recompute the Proof of Work, but then that takes a lot of time and computing power and is thus difficult to do.