We characterize the class of separable Banach spaces X such that for every continuous function f : X → R and for every continuous function ε : X → (0, +∞) there exists a C 1 smooth function g : X → R for which |f (x)−g(x)| ε(x) and g (x) = 0 for all x ∈ X (that is, g has no critical points), as those infinitedimensional Banach spaces X with separable dual X * . We also state sufficient conditions on a separable Banach space so that the function g can be taken to be of class C p , for p = 1, 2, . . . , +∞. In particular, we obtain the optimal order of smoothness of the approximating functions with no critical points on the classical spaces p (N) and L p (R n ). Some important consequences of the above results are (1) the existence of a non-linear Hahn-Banach theorem and the smooth approximation of closed sets, on the classes of spaces considered above; and (2) versions of all these results for a wide class of infinite-dimensional Banach manifolds.