To provide a technology for accurately controlling a fuel injection amount varying according to a variation in cylinder pressure.

The variation amount of the fuel injection amount due to a change in fuel injection rate at an engine cylinder pressure (a detected value or an estimated value in the operating state of an internal combustion engine) relative to a fuel injection rate at a reference cylinder pressure (conditions on an injector characteristic measuring bench) is calculated, and an energizing time is controlled by correcting the varied amount of a fuel injection start timing. In the calculation of the varied amount of the fuel injection amount, the areas of Δq1 and Δq2 are calculated by using a fuel injection rate behavior variation model modeled by assuming that the variation in the behavior of the fuel injection rate is trapezoidal. The varied amount Δτd at the fuel injection start timing is calculated based on a rail pressure and the varied amount of the cylinder pressure.