Controller vs Block in Magento 2

Controller

Handles the request and response (receives URL request, processes logic, and decides which page or result to return).

Block

Prepares data for the view/template (fetches or processes data that the .phtml file displays).