Cette mesure drastique entre dans le cadre de l'état d'alerte décrété pour quinze jours dans le pays.
L'Espagne, où plus de 1.500 nouveaux cas ont été enregistrés depuis vendredi soir, est le deuxième pays le plus touché par l'épidémie en Europe, derrière l'Italie qui a déjà pris des mesures similaires.
Au total, plus de 5.700 cas ont été détectés en Espagne, et au moins 183 personnes sont mortes.
"L'interdiction de circuler dans les rues (...) est à suivre obligatoirement à partir d'aujourd'hui", a déclaré Pedro Sanchez lors d'une allocution à la télévision.
Les Espagnols pourront sortir de chez eux pour aller "travailler", "acheter le pain", aller à la pharmacie ou se faire soigner mais "pas pour aller dîner chez un ami".
Le Premier ministre socialiste a indiqué par ailleurs que l'ensemble des commerces n'étant pas de première nécessité seraient fermés dans l'ensemble du pays. Une mesure déjà prise dans plusieurs régions comme celle de Madrid, la plus touchée d'Espagne avec près de 3.000 cas.
"Notre main ne tremblera pas pour l'emporter face au virus", a encore dit Pedro Sanchez.