This paper addresses control system design for a trolley crane system. The challenges in the control design task arise from the under-actuated nonlinear multi-input multi-output nature of the system. The trolley crane system has three-degrees of freedom that need to be controlled - the lateral and vertical positions of the load and its angular oscillations. However, there typically exist only two independent actuation systems, these being motors to control trolley motion and pendulum length respectively. An application of standard nonlinear control system design techniques leads to internal dynamics that are only marginally stable. The paper develops a nonlinear controller for the trolley crane system using Lyapunov functions and a modified version of sliding-surface control. The nonlinear controller guarantees stability of the closed-loop system and also ensures that the internal dynamics are well-behaved. Theoretical bounds are established for trajectory tracking errors. Simulation results demonstrate the performance and robustness of the developed control system.