Engine idle speed control is a crucial function of engine control. Good engine idle speed control is essential for fuel economy, emission, and driver comfort. The idle speed is controlled by two actuators, the electronic throttle and the spark timing. The throttle has large authority but has a slow response because of manifold dynamics and intake-to-torque delay. The spark timing has small authority but has a fast response. Also the engine efficient will decrease if the spark timing is away from the optimal (MBT) angles. Therefore, we want the spark timing to deviate from the optimal angle as small as possible. Model Predictive Control (MPC) is used in this paper to regulate the engine idle speed using both the electronic throttle and the spark timing. Model predictive control uses a prediction model to describe the relationship between the system’s/plant’s inputs and outputs. It finds optimal control actions that minimize a given cost function. The optimal control is found by numerical optimization, specifically, quadratic programming. Model predictive control explicitly considers plant’s inputs and outputs constraints in the optimization process to ensure that the constraints are satisfied all the time. Model predictive control provides a unified framework for both Single-Input-Single-Output (SISO) and Multi-Input- Multi-Output (MIMO) systems. It can also easily handle systems with time delays. Model predictive control has been successfully applied in chemical process industry for years and is gradually being applied to automotive and other systems with faster dynamics. We describe an MPC design flow, from continuous plant development, plant discretization, and MPC weights selection. A linearized control oriented plant model with torque delays is used. Disturbance models are used to get offset-free steady state tracking. MPC needs a state observer. Its design is also discussed. Engine idle speed control has two inputs, throttle and spark, and only one output, engine speed. We handle the excessive inputs by putting weights at the incremental control effort and the absolute control effort for the throttle and spark timing respectively.