A surface moving mesh method is presented for general surfaces with or without explicit parameterization. The method can be viewed as a nontrivial extension of the moving mesh partial differential equation method that has been developed for bulk meshes and demonstrated to work well for various applications. The main challenges in the development of surface mesh movement come from the fact that the Jacobian matrix of the affine mapping between the reference element and any simplicial surface element is not square. The development starts with revealing the relation between the area of a surface element in the Euclidean or Riemannian metric and the Jacobian matrix of the corresponding affine mapping, formulating the equidistribution and alignment conditions for surface meshes, and establishing a meshing energy function based on the conditions. The moving mesh equation is then defined as the gradient system of the energy function, with the nodal mesh velocities being projected onto the underlying surface. The analytical expression for the mesh velocities is obtained in a compact, matrix form, which makes the implementation of the new method on a computer relatively easy and robust. Moreover, it is analytically shown that any mesh trajectory generated by the method remains nonsingular if it is so initially. It is emphasized that the method is developed directly on surface meshes, making no use of any information on surface parameterization. It utilizes surface normal vectors to ensure that the mesh vertices remain on the surface while moving, and also assumes that the initial surface mesh is given. The new method can apply to general surfaces with or without explicit parameterization since the surface normal vectors can be computed even when the surface only has a numerical representation. A selection of twoand three-dimensional examples are presented.