I think you should start looking for a new job. The primary issue is not the other two developers. It is your manager.
Have you heard that the primary reason people quit is to leave their managers? Think about what it means between the lines.
For software projects, extensibility and maintainability are very important. It speaks of the long term ROI (return over investment). It speaks of the long term view and stratgy of the company on the product. Unless it is the bootup stage of a startup that they have to push out the product as soon as possible to test the market, the CTO/VP/Director of Engineering should have good understanding of its pros and cons.
In your case, it seems that your manager is either very smart or very stupid. In the former case, he doens't care the long term goal. He just wants to get the project released on time, get the initial product look reasonally good enough so that he would look good before his boss. As for maintaining the product, adding new features, dealing with more and more bugs showing up, it would not be his problems if he get promoted due to the initial products. Many managers are of this build-and-flip type.
It could be possible that your manager doesn't understand how to manage software projects, espeically for those non-technical managers. There are excellent non-technical managers. There are tons of more lousy non-technical project managers who do more harm than good. A good technical manager can pick up some reviews, read the code and comments, and instantly know which engineers are strong in which fields. It seems your manager doesn't read them or doesn't have the ability to read them. A good non-techincal managers are very insightful and knows who to trust on technical issues. It seems your manager doesn't fit either good manager categories.
What you can do is to look for opportunites to show your manager your strength, to earn his trust if it is worth the efforts. The best opportuntiy is to solve crisis problem, like serious bugs or serious performance issues. Then in the post-mortem, mention what is the issue, and how to code better to decrease the possibility of similar problems. No managers want such problem, since it makes them look bad before their managers. Of course, you must have the record to deliver good quality projects on time.
For the unreasonable reviews from your peer, you have the option to ignore them. You should talk to your manager about the reviews, in a professional way. Talk about the code, not about the persons. Talk about why your code is the right choice, in a way that non-technical managers can understand.
If your manager has established a biased view against you, usually little can you do to change that. Also consider if it is worth your efforts.
If you really like what the job brings to you, like you said that you could take care of your family better, and you have marketable skills so that you can find another job easily, you can just do what they ask you and not worry about the code quality. Treat your job as regular pay checks. If they let you go some day, it has little effect on your life.