Yes you can upgrade a project from MVC 4 to MVC 5.2.7. MVC 4 was shipped as part of the framework. All of MVC 5 ships as Nuget packages and have to be explicitly added to your list of packages (which is what the project template does for you).
You cannot simply call a controller contained in one web project from another one, in general. MVC requires all controllers to be registered up front and that is handled by the runtime scanning your assemblies for controllers. Normally it only looks in the web project assembly but you can override this convention. Nevertheless all the web project code needs to run in the same process so you cannot have 1 set of controllers relying on a different version of MVC (or any assembly) as another. They will all use the same version and whether it works or not depends on what you're doing. Nevertheless it is fragile and not recommended at all.
In general you should just upgrade your existing MVC 4 project to MVC 5. If that isn't an option then copy all your MVC 4-based code into your MVC 5 project. You do not want to try to host both at the same time.
If your code base is so huge that you simply cannot migrate everything at once then the alterative is to use YARP from Microsoft to proxy calls from one web app hosted in MVC 4 to the other web app hosted in the newer runtime. However I don't think YARP works for MVC 5, I think it has to be on ASP.NET Core, but I could be wrong. Irrelevant requests that come in to your new app that are not mapped to the newer routes are forwarded to the old app. There are lots of things to consider when doing this and MS has several good writeups on using YARP that you should read. This is the recommended upgrade path if you need both apps running.
Another alternative is to run the Upgrade Assistant and migrate your app to ASP.NET Core. It unfortunately won't migrate most things but it uses YARP to proxy back to your existing app (which has to be hosted separately). But I'm not sure if it works with MVC 4 which dropped support a while back. It might require MVC 5 before remotely considering upgrading.
If it were me I'd either just move all the functionality into the MVC 5 project and forget the MVC 4 one or just bite the bullet and switch to ASP.NET Core (bigger effort). If you really, really need to have your MVC 5 project "call into" MVC 4 then the better approach would be to move all that logic that isn't tied to the controller aspect into reusable types (services and whatnot) and then simply have your new controller call into the service type instead of calling the old controller that then calls into the service type. This eliminates the need for "cross controller" calls since a controller should really just handle input/output formatting and passing the real work on to backend components that don't really care about controllers.