A controller for an internal combustion engine, the controller comprising: a start-time target engine speed setting section that, when detecting a starting operation of a vehicle, sets a start-time target engine speed (N3) of an internal combustion engine on the basis of a basic start-time target engine speed (N2) corresponding to an accelerator operation amount by a driver in a period until a vehicle speed reaches a specified cancellation threshold value; an idle rotation control torque calculation section that sets idle rotation control torque (T2) of the internal combustion engine on the basis of the higher of a target idle engine speed (N1) and the start-time target engine speed (N3) of the internal combustion engine ; a driver request torque calculation section that sets driver request torque (T6) of the internal combustion engine on the basis of basic driver request torque (T1) corresponding to the accelerator operation amount by the driver such that a change speed does not exceed a specified threshold value; a target torque calculation section that adds the idle rotation control torque (T2) to the driver request torque (T6) and sets target torque (T7) with specified upper limit torque (T3) as an upper limit; and an engine control section that controls the internal combustion engine on the basis of the target torque (T7), wherein in the case where a sum (T2 + T1) of the idle rotation control torque (T2) and the basic driver request torque (T1) exceeds the upper limit torque (T3), the idle rotation control torque calculation section sets the idle rotation control torque (T2), from which at least differential torque (T4) between the sum (T2 + T1) and the upper limit torque (T3) is subtracted. a start-time target engine speed setting section that, when detecting a starting operation of a vehicle, sets a start-time target engine speed (N3) of an internal combustion engine on the basis of a basic start-time target engine speed (N2) corresponding to an accelerator operation amount by a driver in a period until a vehicle speed reaches a specified cancellation threshold value; an idle rotation control torque calculation section that sets idle rotation control torque (T2) of the internal combustion engine on the basis of the higher of a target idle engine speed (N1) and the start-time target engine speed (N3) of the internal combustion engine ; a driver request torque calculation section that sets driver request torque (T6) of the internal combustion engine on the basis of basic driver request torque (T1) corresponding to the accelerator operation amount by the driver such that a change speed does not exceed a specified threshold value; a target torque calculation section that adds the idle rotation control torque (T2) to the driver request torque (T6) and sets target torque (T7) with specified upper limit torque (T3) as an upper limit; and an engine control section that controls the internal combustion engine on the basis of the target torque (T7), wherein in the case where a sum (T2 + T1) of the idle rotation control torque (T2) and the basic driver request torque (T1) exceeds the upper limit torque (T3), the idle rotation control torque calculation section sets the idle rotation control torque (T2), from which at least differential torque (T4) between the sum (T2 + T1) and the upper limit torque (T3) is subtracted. <EOS>