Next block contains a reference to previous block header hash. Let's say the blocks are ordered as `1<-2<-3<-4<-5<-`. Block 2 header contains a reference to block 1 header hash. Block 3 header contains a reference to block 2 header hash. Block 4 header contains a reference to block 3 header hash, and so on. If someone changes block 3 header block 4 will not point to that block's header any more, and the part of the chain -4<-5<-6<-... will be invalid. Each block's header contains a construct (called Merkle root) which is derived from all transactions. Thus changing a transaction in block 3 will make Merkle root in the header of block 3 invalid and the attacker must also change that. Meaning the header will change and thus block 3 header's hash will change. Thus block 4 header won't point to block 3 header hash any more.