Bert Hubert has written a great overview of the vaccine and how it works at the molecular level.

The most interesting bit was how the mRNA vaccine isn't technically RNA – one of the nucleotides is replaced with a different molecule. This is done so that the immune system doesn't consider the RNA strand a threat and destroy it:

The normal RNA characters are A, C, G and U.  U is also known as ’T’ in DNA.  But here we find a Ψ, what is going on?
This is one of the exceptionally clever bits about the vaccine. Our body runs a powerful antivirus system (“the original one”). For this reason, cells are extremely unenthusiastic about foreign RNA and try very hard to destroy it before it does anything.
This is somewhat of a problem for our vaccine - it needs to sneak past our immune system. Over many years of experimentation, it was found that if the U in RNA is replaced by a slightly modified molecule, our immune system loses interest. For real.
So in the BioNTech/Pfizer vaccine, every U has been replaced by 1-methyl-3’-pseudouridylyl, denoted by Ψ.  The really clever bit is that although this replacement Ψ placates (calms) our immune system, it is accepted as a normal U by relevant parts of the cell.