In this paper, a more accurate battery state of charge (SOC) estimation method for electric drive vehicles is developed based on a nonlinear battery model and an extended Kalman filter (EKF) supported by experimental data. A nonlinear battery model is constructed by separating the model into a nonlinear open circuit voltage and a two-order resistance-capacitance model. EKF is used to eliminate the measurement and process noise and remove the need of prior knowledge of initial SOC. A hardware-in-the-loop test bench was built to validate the method. The experimental results show that the proposed method can estimate the battery SOC with high accuracy.