This paper addresses a nonlinear observer based control scheme to synchronize chaotic systems subject to uncertainties and external disturbances. It is assumed that the dynamic of slave system is not completely known. In order to compensate for the system perturbation resulting from parameter variations and mismodeling phenomena, an adaptive neural network observer is employed to handle this problem. A nonlinear observer for a class of nonlinear systems is proposed based on a generalized dynamic recurrent neural network. The weights of the proposed neural network in the observer are tuned on-line with no off-line learning phase required. Also, no exact information of the nonlinear term of the system is required and this important characteristic compensates considerable part of uncertainty. To realize control purpose, two controllers are considered. At first, PID controller is combined with proposed observer and then 2nd order sliding mode controller called twisting algorithm is applied to synchronize systems. This method is implemented on the Duffing chaotic systems and simulation results confirm the effectiveness of the proposed method.