Let's say that 2 miners were able to add a block around the same time. However, when they broadcast their respective blocks to the network, other nodes receive these blocks in arbitrary order. The block that arrives later will be considered invalid because the hash of the previous block will not match up.
How does blockchain ensure that the newly block added is the same one for all the nodes?
EDIT:
Even if everyone is connected to the network this can happen:
Blocks A and B are added at the same time. Then next round C happens on top of A, and D happens on top of B. All nodes will delete the shortest block-tip before they even hear about the other broadcast.
node 1:
chain +A +C
chain +B +D
node 2:
chain +B +D
chain +A +C
And if this keeps happening, all the nodes will maintain different versions of the blockchain which, in their view is the correct version
node 1:
chain+A+C+...
node 2:
chain+B+D+...