Code Injection: When a malicious application uses a vulnerability to exploit an already running application to insert malicious code into the exploited application; changing the path of execution.
Command Injection: When you use some type of input to a system to run a system command. This can occur when input is not properly sanitized or checked. Wikipedia has a nice example
Remote Code Execution: When a code can execute any instruction that it wants on a system. There are lots of vulnerabilities out there, but not all of them will allow an attacker to execute arbitrary code on a system. Gaining Remote Code Execution is the last step exploiting a system.
To put them all together. A vulnerability is used to exploit a system to perform code or command injection to gain remote code execution. It should be noted that you don't need code/command injection to gain remote code execution. They are simply examples of how malicious code might be used.