In this paper we present a system that uses only vision to land a UAV on a runway. We describe a method for estimating the relative location of the runway as an image by performing image registration against a stack of images in which the location of the runway is known. An approximation of the camera projection model for a forward-facing view of a runway is derived, allowing the course deviation of the UAV to be estimated from a registered image. The course deviation is used as input to a linear feedback control loop to maintain the correct flight path. Our method is implemented as a real-time multithreaded application, which is used to control an aircraft in Microsoft Flight Simulator. We also show results of applying the vision component of the system to video recorded from an actual UAV.