After winning gold together in the team sprint on Friday, the pair came head to head in the semi-finals where Varnish came out on top, but then was beaten to the gold by Germany’s Kristina Vogel.
James beat Lee Wai Sze of Hong Kong in the bronze medal race.
"It was good. It's another level now when you get into a final,” Varnish said after the race.
"It's nice to be actually in a final. I just want to be able to step it up another level now. I'm not in the best shape, so I've not played all my cards.
“It was great. In the second race I saw what I did wrong and I was shocked what I did wrong,” she added on her bout with James.
"It's always hard to come back from that and I'm really happy to beat her. It's really nice to gain experience at the moment and build on to the worlds."
The competition between Varnish and James is heating up as they battle it out to succeed the retired Victoria Pendleton as Great Britain's racer at the Rio 2016 Olympics.
James admitted to feeling the pressure against her team-mate, but was delighted to finish on the podium.
“It's been such a hard day, getting three rides up against Jess was really tough and then missing out on the gold/silver ride-off was hard. I had to get my head round it and I did not want to come away with no medal, so I'm really happy,” James said.
"It's difficult going to three rides in the final. It all worked out in the end."
Olympic champion Jason Kenny spectacularly crashed in the final of the keirin as German Stefan Boetticher won the race ahead of Lewis Peter from Australia and Sakamoto Takashi of Japan.
Kenny was awarded fourth place after unwittingly finishing the race on his road bike. Fellow Brit Lewis Oliva crashed out in the second round of the same event and both men will not compete in Sunday's sprint as they recover from their injuries.
In the men's individual pursuit, Lasse Norman Hansen from Denmark claimed gold in a time of 4:20.875 ahead of Ireland's Martyn Irvine. David Muntaner Juaneda of Spain won bronze.
Meanwhile, Olympic and world champion Laura Trott is placed fourth after three of the six omnium disciplines, while Jonathan Dibben finished fifth in the men's event. Germany's Lucas Liss won by one point from world champion Glenn O'Shea of Australia.