Unless you give all the machines on NetworkB IP addresses from NetworkA's IP space (making NetworkA on LAN), they will still default route to RouterB, which will then go out and around the internet.
Adding routes to each individual host on NetworkB also is not the correct course of action, but may work -- where will you point the routes on HostB? If you point them to an interface on RouterA, that interface will have to have an IP address from NetworkB. That way HostB will send packets to RouterA(intB) (which is available because it's on LAN), then the router will turn that around and deliver it out it's other interface to NetworkA.
HostB -----> (RouterA(IntB.NetworkB)<->RouterA(IntA.NetworkA))------> HostA
This can even be done on a single interface by multihoming or using subinterfaces, which is referred to as a "router on a stick" -- packets enter RouterAInterfaceA on a NetworkB IP address, then exit from RouterAInterfaceA onto NetworkA. This is a not fun scenario.
HostB -----> (RouterA(IntA.NetworkB)<->RouterB(IntA.NetworkA))------> HostA
The only really 'right' answer is to join the routers and add in static routes, requiring no changes on hosts (because then it's not a network issue any more). Adding static routes on hosts is generally frowned upon, but if you can join RouterA onto NetworkB, then yea, it can be done. Hack job at best, though.
$.02
randal