Amotor control device that controls a current of a motor based on a torque command, the current being separated into a d-axis current and a q-axis current orthogonal to the d-axis current, the torque command being a target value of a torque of the motor, the motor control device comprising: a current vector controller adapted to receive a d-axis current command and a q-axis current command, and to generate a d-axis voltage command and a q-axis voltage command, a difference between a value of the d-axis current and a value of the d-axis current command being zero, a difference between a value of the q-axis current and a value of the q-axis current command being zero; a q-axis current command generator adapted to generate the q-axis current command based on the torque command; a magnetic-flux weakening controller adapted to generate the d-axis current command based on a difference between a voltage command and a reference voltage, the voltage command being a vector with the d-axis voltage command output from the current vector controller as a d-axis component and the q-axis voltage command as a q-axis component, an amplitude of the voltage command not exceeding the reference voltage; characterised by a current limiter adapted to limit a magnitude of the d-axis current command according to a magnitude of the q-axis current command, the d-axis current command being a d-axis component of a current command vector of the motor, the q-axis current command being a q-axis component of the current command vector of the motor, a magnitude of the current command vector of the motor not exceeding a current limit value; and a reference voltage correction unit adapted to correct the reference voltage based on a difference between a value of the d-axis current command before limitation and a value of the d-axis current command after the limitation. a current vector controller adapted to receive a d-axis current command and a q-axis current command, and to generate a d-axis voltage command and a q-axis voltage command, a difference between a value of the d-axis current and a value of the d-axis current command being zero, a difference between a value of the q-axis current and a value of the q-axis current command being zero; a q-axis current command generator adapted to generate the q-axis current command based on the torque command; a magnetic-flux weakening controller adapted to generate the d-axis current command based on a difference between a voltage command and a reference voltage, the voltage command being a vector with the d-axis voltage command output from the current vector controller as a d-axis component and the q-axis voltage command as a q-axis component, an amplitude of the voltage command not exceeding the reference voltage; characterised by a current limiter adapted to limit a magnitude of the d-axis current command according to a magnitude of the q-axis current command, the d-axis current command being a d-axis component of a current command vector of the motor, the q-axis current command being a q-axis component of the current command vector of the motor, a magnitude of the current command vector of the motor not exceeding a current limit value; and a reference voltage correction unit adapted to correct the reference voltage based on a difference between a value of the d-axis current command before limitation and a value of the d-axis current command after the limitation.