When we use penalty method to solve Navier–Stokes equations with nonlinear slip boundary conditions, the penalty parameter ϵ should be sufficiently small to yield an accurate approximation and the choice of ϵ depends on the mesh size h. However, the condition number of the associated stiffness matrix becomes large if ϵ is too small, which leads to the unstable computation. In this paper, we design an iterative penalty method for the problem and give some error estimates. In our algorithm, we can use a not very small penalty parameter ϵ independent of h to avoid the unstable computation. Numerical examples are given to show that the algorithm is very effective and powerful. Copyright © 2012 John Wiley & Sons, Ltd.