EDIT: Even though the OP may be long gone, I wanted to finish what I started with my response.

This circuit works fine for me using two UNOs (and one UNO and a serial board for a PC). It is, essentially, the same as in the first response by @hcheung. I used 4.7K and 10K for R2/R4 and they worked fine. I tested it using this program running on both UNOs.
#include <SoftwareSerial.h>
SoftwareSerial SSerial(4,5); // RX, TX
void setup() {
Serial.begin(9600);
SSerial.begin(9600);
}
void loop() {
// display whatever comes in through software serial on the Arduino monitor
if(SSerial.available()) {
Serial.write(SSerial.read());
}
// send whatever comes in on serial to software serial
if(Serial.available()) {
SSerial.write(Serial.read());
}
}
Note that the programs use software serial and both Tx and Rx are isolated.
If you use this for the hardware serial port on two UNOs, take care. First, don't hang things on 0/1 until after the program loads and how much you can get away with is unclear to me.
Second, if you use a simple program like this, on both UNOs, you will quickly see that the first bytes sent will ping-pong and causes problems.
void setup() {
Serial.begin(9600);
}
void loop() {
if(Serial.available()){
Serial.write(Serial.read());
}
}
I note that the OP was only using one end.
Personally, I found several junk box 4N25s that would not work - that took me a bit of time to figure out. Finally, I don't see the point of optically isolating two UNOs as I did for example, but that is another story.
______ older msg is below _______________________________
A typical way of doing this is illustrated here .

// *** I am leaving my original text below, but I want to back off of this a bit. I spent a few hours on this today and I am not happy with the results or my understanding. If I come to any worthwhile conclusions, I will post them. I do like getting to the bottom of things, but I was premature. It is simply not working the way I would expect when I get into 9600 speed and I need to investigate further. Yes, I am accounting for the UNO 0&1 involvement with USB.
// ***
The advantage is that you will not be inverting the line on the receiving end. The choice of R1 and R2 is important. I used R1=330 and R2=1K and transmission was fine at 9600 using a junk box 4N25. My testing was with a single UNO and after uploading a simple program.
See https://github.com/pepaslabs/Electronics/wiki/Designing-a-TTL-Serial-Opto-isolator for a good discussion on exactly this topic.
PS: As mentioned you should have submitted a schematic and you could have used a meter to see what voltages you were getting - those are good steps to understanding things.