Left and right to move.
Up to rotate (or Z/X).
Down arrow to drop.
Ctrl/space/shift+down to insta-drop.
P or ESC to pause/unpause.
Tiles can merge under certain circumstances if numbers match up.
When your piece collides, it can merge in up to 1 level deep.
If it fails to merge (not all required tiles match up), then it just sticks/attaches on top.
When a row is filled it will become a merger row, unless it is already a merger row in which case the row above it becomes a merger row.
If the bottom row is filled, then it is always the row above that becomes the merger row.
Each tile on a merger row will individually be pushed down to the row below, and tiles above it will follow. If the tile it pushes into matches up, they will merge. If the two tiles do not match up, the tile being pushed into will wrap around and appear at the top of the column, but only if the number being pushed into is smaller. Larger numbers will remain fixed in place and will prevent any of the movement.