As one of the core functions of the battery management system, battery state of charge (SOC) estimation is crucial to battery life and safety. As the traditional recursive least squares method cannot adapt well to complex variable current conditions, this paper proposes a SOC estimation method that combines the improved variable forgetting factor recursive least squares (IVFFRLS) and the adaptive extended Kalman filter (AEKF). First, IVFFRLS removes the rounding operation of the original algorithm to improve the sensitivity to errors and uses a genetic algorithm to optimize the upper and lower bounds of the variable forgetting factor and the sensitivity coefficient to improve the accuracy of the VFFRLS algorithm. Meanwhile, AEKF introduces a noise covariance adaptive update link based on the covariance matching method to correct the system's process noise Q and measurement noise R in real time to improve the SOC estimation accuracy. Based on the second-order RC equivalent circuit model, the method proposed in this paper has good accuracy and robustness under four different working conditions. The experimental results show that compared with traditional methods, the proposed IVFFRLS-AEKF algorithm has higher SOC estimation accuracy and better robustness.