A control apparatus for an engine, the engine comprising a fuel injector that injects fuel into an intake port, a variable valve mechanism that changes opening/closing timings of at least an intake valve, a first detecting means that detects an amount of intake air flowing through an intake passage of the engine, and a second detecting means that detects atmospheric pressure, the control apparatus comprising: a first control means that sets a valve-opening timing of the intake valve in response to the amount of intake air; and a second control means that sets an injection start time of the fuel injector in response to the amount of intake air, the control apparatus being configured such that: in a case where the amount of intake air is within a first range being equal to or more than a predetermined value (Qo), the first control means advances the valve-opening timing as compared with a case where the amount of intake air is equal to the predetermined value (Qo); and in the case where the amount of intake air is within the first range, the second control means delays the injection start time as compared with a case where the amount of intake air is within a second range being less than the predetermined value (Qo), and the control apparatus further comprising: a first calculating means that calculates charging efficiency (Ec) based on the amount of intake air; and a second calculating means that calculates volumetric efficiency (Ev) based on the amount of intake air and the atmospheric pressure, wherein the second control means calculates two injection start times based on the charging efficiency (Ec) and the volumetric efficiency (Ev), respectively, and when the injection start times calculated by the second control means differ from each other, sets more delayed one as the injection start time. a first control means that sets a valve-opening timing of the intake valve in response to the amount of intake air; and a second control means that sets an injection start time of the fuel injector in response to the amount of intake air, the control apparatus being configured such that: in a case where the amount of intake air is within a first range being equal to or more than a predetermined value (Qo), the first control means advances the valve-opening timing as compared with a case where the amount of intake air is equal to the predetermined value (Qo); and in the case where the amount of intake air is within the first range, the second control means delays the injection start time as compared with a case where the amount of intake air is within a second range being less than the predetermined value (Qo), and in a case where the amount of intake air is within a first range being equal to or more than a predetermined value (Qo), the first control means advances the valve-opening timing as compared with a case where the amount of intake air is equal to the predetermined value (Qo); and in the case where the amount of intake air is within the first range, the second control means delays the injection start time as compared with a case where the amount of intake air is within a second range being less than the predetermined value (Qo), and the control apparatus further comprising: a first calculating means that calculates charging efficiency (Ec) based on the amount of intake air; and a second calculating means that calculates volumetric efficiency (Ev) based on the amount of intake air and the atmospheric pressure, wherein a first calculating means that calculates charging efficiency (Ec) based on the amount of intake air; and a second calculating means that calculates volumetric efficiency (Ev) based on the amount of intake air and the atmospheric pressure, wherein the second control means calculates two injection start times based on the charging efficiency (Ec) and the volumetric efficiency (Ev), respectively, and when the injection start times calculated by the second control means differ from each other, sets more delayed one as the injection start time.