Controllers : In Magento 2, controllers are the entry points for handling requests (like /mymodule/index/test). They live inside your module and decide what happens when someone visits a route.
Block : A Block is the middle layer between your PHP logic and your .phtml template.
Controller → Block → Template (.phtml) → HTML output.
Blocks are classes you create under Block/ folder of your module or theme.