Approximate dynamic programming is a useful tool in solving multi-stage decision optimal control problems. In this work, we first promote the action-dependent heuristic dynamic programming method to multi-input multi-output control system by extending its action network to multi-output form. The detailed derivation is also given. We then apply this method to the fluctuation control of a spark engine idle speed. An engine idling model is set up to verify the control effect of this method. Results here show that this method requires several iterations to suppress unbalanced combustion by manipulating spark ignition timing. This method provides an alternative for a simpler multi-input multi-output approximate dynamic programming scheme. Moreover, it has a faster iteration convergence effect. The derivation of this method also has a rigorous mathematical basis. Although illustrated for engines, this control system framework should also be applicable to general multi-input multi-output nonlinear system. Copyright © 2011 John Wiley & Sons, Ltd.